• User Attivo

    Ciao, Tymba. Il link non funziona!

    Devo riscrivere con htaccess, ma per quello non ho problemi.

    Il redirect però devo inserirlo sulla pagina in PHP.

    Grazie 😉


  • User Attivo

    @kru said:

    Ciao, ragazzi.

    Sto riscrivendo le pagine da PHP a HTML, con il mod_rewrite.

    Mi sapete dire, per una regola tipo:

    RewriteRule ^computer/(.)-(.).html$ ele_prod.php?cid=$1-$2

    come deve essere scritto il Redirect permanent sulla relativa pagina in PHP?

    Tenete conto che $1 è la variabile della pagina, mentre $2 una variabile testuale, contenuta nel database e già richiamata sulla pagina in PHP, che dipende dal contenuto della pagina visualizzata (per es., con cid=12, $2=hard-disk; cid=23, $2=monitor)

    grazie 🙂

    :ciauz:
    mmm dall'url che hai scritto ci sta una variabile ele_prod.php?cid=$1-$2
    praticamente a $cid puoi assegnare un valore alla volta, ti do un consiglio passa un url della tua pagina completo di variabili altrimenti non è possibile darti na mano.....


  • User Attivo

    Scusate ragazzi se mi introduco nel 3d... ma ho un problema simile...
    il file .htaccess è della directory PHPLD...

    Questa parte funziona benissimo
    [html]

    Categoria redirect

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* index.php [QSA,L]
    [/html]Questa invece non la prende in considerazione:
    [html]

    nuovi inserimenti

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule nuovi.html? /index.php?p=d [QSA,NC,L]

    top link

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule top.html? /index.php?p=h [QSA,NC,L]
    [/html]Dov'è l'errore? :mmm:
    Grazie mille anticipato per l'aiuto...


  • User Attivo

    puoi provare a fare na cosa?
    metti la prima parte alla fine del file htaccess e riprova facce sapè


  • User Attivo

    @jackass said:

    mmm dall'url che hai scritto ci sta una variabile ele_prod.php?cid=$1-$2
    praticamente a $cid puoi assegnare un valore alla volta, ti do un consiglio passa un url della tua pagina completo di variabili altrimenti non è possibile darti na mano.....

    Ciao!+
    Ecco il link alla pagina dinamica:
    <A HREF="http://www.ai-machines.xxx/ele_prod.php?cid=<? echo $row2[id]; ?>">

    Non mi interessa però il redirect sull'htaccess, ma sulla pagina ele_prod.php, in stile:

    <?php
    if ( eregi('^(.*)/miapagina.php?parametro$', $_SERVER['REQUEST_URI'])) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $parametro-$ID.html');
    }
    ?>

    Il secondo parametro che avevo inserito sull'htaccess, sarebbe un secondo parametro che dovrei "passare" all'htaccess, ma che ora non è presente sull'URL.

    :ciauz:


  • User Attivo

    Era sbagliata la sintassi... 🙂
    In questo modo funziona:
    [html]

    nuovi inserimenti

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule nuovi.html$ index.php?p=d [QSA,NC,L]

    top link

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule top.html$ index.php?p=h [QSA,NC,L]
    [/html]Ho trovato tra l'altro un'ottima guida, spero possa essere utile:
    http://www.webmaster-headquarters.com/faqs/mod_rewrite.shtml

    Ciao 😉


  • User Attivo

    Scusami Kru, ho interferito nel 3d... 🙂
    Sono molto dispiaciuto...


  • User Attivo

    Non fa niente, jardem.
    Sposto il mio post quì 😉

    @Jackass said:

    mmm dall'url che hai scritto ci sta una variabile ele_prod.php?cid=$1-$2
    praticamente a $cid puoi assegnare un valore alla volta, ti do un consiglio passa un url della tua pagina completo di variabili altrimenti non è possibile darti na mano.....

    Ecco il link alla pagina dinamica:
    <A HREF="http://www.ai-machines.xxx/ele_prod.php?cid=<? echo $row2[id]; ?>">

    Non mi interessa però il redirect sull'htaccess, ma sulla pagina ele_prod.php, in stile:

    <?php
    if ( eregi('^(.*)/miapagina.php?parametro$', $_SERVER['REQUEST_URI'])) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $parametro-$ID.html');
    }
    ?>

    Il secondo parametro che avevo inserito sull'htaccess, sarebbe un secondo parametro che dovrei "passare" all'htaccess, ma che ora non è presente sull'URL.

    :ciauz:


  • User Attivo

    buongiorno pare che non ci sia nulla di strano nel redirect che hai fatto l'unica cosa controlla la regular expression e non usare percorsi relativi ma usa percorsi assoluti perche potresti avere problemi e ancora la funzione header potrebbe darti problemi anche solo se prima dei tag di php ci sta dello spazio per questo assicurati che sia messo prima di ogni altra cosa, a volte gli editor di testo identano senza permesso.......
    ciao jackass
    P.S. facce sapè


  • User Attivo

    Ciao.

    Nello specifico, ho fatto questo:

    <?php
    if ( eregi('^(.)/ele_prod.php?cid=(.)$', $_SERVER['REQUEST_URI'])) {
    $urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $urlstring');
    }
    ?>

    Questa regola però non sembra funzionare. Non ricevo nessun errore. Semplicemente, si apre la normale pagina richiesta. Forse è sbagliata l'espressione regolare dell' if?


  • User Attivo

    @kru said:

    Ciao.

    Nello specifico, ho fatto questo:

    <?php
    if ( eregi('^(.)/ele_prod.php?cid=(.)
    prova così
    <?php
    if ( eregi('/ele_prod.php?cid=', $_SERVER['REQUEST_URI'])) {
    $urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $urlstring');
    }
    ?>, $_SERVER['REQUEST_URI'])) {
    $urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $urlstring');
    }
    ?>

    Questa regola però non sembra funzionare. Non ricevo nessun errore. Semplicemente, si apre la normale pagina richiesta. Forse è sbagliata l'espressione regolare dell' if?
    prova così
    <?php
    if ( eregi('/ele_prod.php?cid=', $_SERVER['REQUEST_URI'])) {
    $urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: $urlstring');
    }
    ?>


  • User Attivo

    No, è uguale. Non reindirizza 😞


  • User Attivo

    guarda questo è quello che ho provato io e funziona
    <?php
    while ( eregi('scambio.php', $_SERVER['PHP_SELF'])) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://127.0.0.1/apache2-default/posizione google/posizione.php');
    exit;
    }
    ?>


  • User Attivo

    si, ma quello non ha la pagina dinamica 🙂


  • User Attivo

    non è quello il problema cmq mi sto accorgendo che cambiando posizione al file il redirect non funziona piu è una cosa strana faccio un po di prove e se capisco il perche ti faccio sapere..... ciao


  • User Attivo

    @jackass said:

    non è quello il problema cmq mi sto accorgendo che cambiando posizione al file il redirect non funziona piu è una cosa strana faccio un po di prove e se capisco il perche ti faccio sapere..... ciao

    Ok. grazie 😉

    Cmq, tieni conto che a me interessa la sintassi x le pagine con variabili.

    :ciauz:


  • User Attivo

    scusami di nuovo la faccenda mi interessa non ne vuole sapere di funzionare cmq una soluzione puo essere questa
    <?
    $cid=$_GET['cid'];
    if (isset($cid)){
    header("location:http://www.google.it");}
    ?>
    controlli soltanto che quella variabile sia settata e fai il redirect funziona testato!!!


  • User Attivo

    Ciao 🙂

    Eccomi... scusa il ritardo, ma stavo testando.
    Comunque, ecco tutto il mio discorso, funzionante, con la tua regola:

    <?php
    include("admin/db_config/config.php");
    session_start();
    $sid = session_id();
    $query = "SELECT id_categoria,titolo,tag FROM categorie WHERE id = '$cid'";
    $result=mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)) {
    $cat = $row[titolo];
    $tag = $row[tag];
    $tagurl = (str_replace(" ","-",$tag));
    }
    $cid=$_GET['cid'];
    $urlstring = ("computer/".$cid."-".$tagurl.".html");
    //if ( eregi('^(.)/ele_prod.php?cid=(.)', $_SERVER['REQUEST_URI'])) {
    if (isset($cid)) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location:' .$urlstring);
    }
    ?>

    Spero sia utile 🙂
    Ora non mi resta che convincere htaccess a prendere in considerazione la variabile $tagurl, per avere una url finale del tipo:

    dominio/computer/25-hard-disk.html

    Qualche idea?

    :ciauz: