• User Attivo

    oh, scusami tanto..... mi sono sbagliato a postare.... era giusta la domanda iniziale, sicuramente errato l'esempio di mod_rewrite successivo... 😞

    abbi pazienza... 🙂

    Questo è quello che in effetti dovrei ottenere:

    Ho una pagina dinamica in PHP che si chiama .....ele_prod.php?cid=x

    dove naturalmente x è la variabile.

    Ora, la vorrei riscrivere tramite mod rewrite, ma non come
    ele-prod-cid1.html,

    bensì come

    $nomecategoria-cid1.html.

    La stringa $nomecategoria è interna alla pagina originale, in PHP, e viene usata per visualizzare il nome categoria all'interno del testo.

    Scusa, ma non sono molto pratico di ste cose.... grazie 🙂


  • User Attivo

    In questo caso è sufficiente far come ti ho detto la prima volta. Tu crei il link con il nome categoria, poi nella regola htaccess lo scarti e non lo usi.


  • User Attivo

    @Senamion said:

    Nella prima parte della regola devi fare una cosa tipo:

    (.)(.).html

    Per cui avrai in $1 il nome categoria e in $2 l'ID.
    Quindi nella parte destra salti il nome categoria e scrivi una cosa tipo:

    ele_prod.php?cid=$2

    OK. credo di aver capito... 🙂

    Il risultato finale sull' htacces sarà dunque:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.)(.).html ele_prod.php?cid=$2

    Naturalmente in più dovrò modificare manualmente gli <ahref> della pagina originale, in modo che vi compaia la mia variabile $nomecategoria

    E' giusto?

    Infine, un redirect 301 per le pagine in php.

    Ci sono, o ancora non ho capito niente?


  • User Attivo

    Perfetto!


  • User Attivo

    Ok 😉

    Grazie mille per il tuo aiuto...

    Ciao 🙂


  • User Attivo

    Scusa... riapro il thread perchè mi viene un dubbio....

    Una volta convertite le URL della pagina originale, ho questa istruzione:

    <A HREF="dominio/ele_prod.php?vd="<? echo $tagurl; ?>-"&cid=<? echo $row2[id]; ?>">

    nella quale, $tagurl è quella famosa variabile da inserire. Adesso, quindi, ogni pagina che apro, mi ritrovo l'url con la variabile.

    Allora già dopo fatto questo devo fare un redirect 301, giusto?

    Poi, creo il file htaccess con all'interno:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.)(.).html ele_prod.php?vd=$1&cid=$2

    Credo sia corretto inserire anche la variabile $1, dato che compare sull'URL "originale".

    Ed anche a seguito di questo.... un altro 301.

    Che ne pensi?


  • User Attivo

    ...
    @Senamion said:

    Forse c'è un po' di confusione. Provo a ricapitolare.
    Il tuo programma scrive degli URL che finiscono con HTML, l'htaccess li traduce nei corrispondenti PHP.
    Se hai necessità di passare al PHP la categoria allora DEVE esserci anche nell'html.
    Se invece nel PHP non ti serve, però vuoi un URL bello descrittivo con anche la categoria tu prepari un link con la categoria e poi non lo passi al PHP in quanto non gli serve.
    Se invece vuoi entrambi basta che usi sia $1 che $2.


  • User Attivo

    @Senamion said:

    Forse c'è un po' di confusione. Provo a ricapitolare.
    Il tuo programma scrive degli URL che finiscono con HTML, l'htaccess li traduce nei corrispondenti PHP.
    Se hai necessità di passare al PHP la categoria allora DEVE esserci anche nell'html.
    Se invece nel PHP non ti serve, però vuoi un URL bello descrittivo con anche la categoria tu prepari un link con la categoria e poi non lo passi al PHP in quanto non gli serve.
    Se invece vuoi entrambi basta che usi sia $1 che $2.

    scusa, ma non capisco.... 😞

    è come dici tu.... il risultato finale del mod_rewrite deve essere una URL in HTML ben descrittiva, in cui la descrizione è un nome categoria (che varia al variare della variabile cid=x, e non mi importa di passare il parametro alla pagina in PHP, dato che comunque farò il 301.

    Ma il link dove lo devo preparare, visto che non devo modificare l'originaria URL in PHP?

    In buona sostanza, non capisco proprio come fare a "passare" la variabile $categoria che è presente nella pagina in PHP, ma non nel suo URL, nell'URL che avrò dopo il mod_rewrite.


  • User Attivo

    Il tuo programma php **non **deve creare link php, ma html.
    Quindi questa riga che hai scritto:

    
    <A HREF="dominio/ele_prod.php?vd="<? echo $tagurl; ?>-"&cid=<? echo $row2[id]; ?>">
    
    

    E' errata. Ho quotato un mio messaggio precedente perchè mi sembra che forse non avevi afferrato il concetto.
    Nel tuo codice PHP dovrai avere qualcosa tipo:

    
    <?php
    echo "<a href='" . $tagurl . "/" . $row2['id'] . "'>";
    ?>
    
    

    Ci pensa poi l'htaccess a convertire e richiamare il corretto php.


  • User Attivo

    @Senamion said:

    Il tuo programma php **non **deve creare link php, ma html.
    Quindi questa riga che hai scritto:

    >
    <A HREF="dominio/ele_prod.php?vd="<? echo $tagurl; ?>-"&cid=<? echo $row2[id]; ?>">
    
    >```
    E' errata. Ho quotato un mio messaggio precedente perchè mi sembra che forse non avevi afferrato il concetto.
    Nel tuo codice PHP dovrai avere qualcosa tipo:
     
    

    <?php
    echo "<a href='" . $tagurl . "/" . $row2['id'] . "'>";
    ?>

    Ci pensa poi l'htaccess a convertire e richiamare il corretto php.

    Ecco.... adesso credo di esserci. Ciò che volevo sapere è proprio come "passare" le variabili.
    Faccio un breve riepilogo per esser sicuro....

    Nella pagina attuale (in PHP), lascio i link così come sono, che funzioneranno fintanto chè non faccio il redirect 301 verso le nuove pagine. Nella pagina, però, devo aggiungere l' URL in HTML, simile a quella che mi hai indicato, che, non "funzionerà" sulla pagina in PHP, ma che verrà utilizzata dall' htaccess per prendere i parametri ( (.)/(.).html )

    Spero di non aver capito male, stavolta.... 🙂

    Grazie infinite....;)


  • User Attivo

    Mi sembra che ci siamo.
    Tieni comunque conto che una volta che hai messo l'htaccess e non hai ancora messo i link html puoi provare lo stesso mettendo sul browser il link html. Se l'htaccess è corretto vedrai la stessa pagina php che ti aspetti.
    A quel punto, quando hai fatto i controlli, cambi tutti i link del tuo sito in html.