• User Attivo

    mod_rewrite sintassi complicata

    Ciao a tutti
    ho riscritto completamente un codice per un mio sito dinamico e devo sostituire il vecchio indirizzo con il nuovo.

    Per evitare di scrivere 520 righe su .htaccess avrei bisogno di fare questo rewrite

    http://www.pippo.pip/pluto.php?titolo=PLUTO-VA-A-SCUOLA

    che sul nuovo sito diventa

    http://www.pippo.pip/clarabella.php?page=pluto&titolo=PLUTO-VA-A-SCUOLA

    quindi è evidente che molte cose restano le stesse e devo solo sostituire:

    pluto.php?

    con

    clarabella.php?page=pluto&

    C'è qualcuno che capisce la sintassi del mod_rewrite in modo da evitare di scrivere 520 righe e poter fare il rewrite solo per i cambiamenti?

    Grazie millemila


  • User Attivo

    @donbairo said:

    Ciao a tutti
    ho riscritto completamente un codice per un mio sito dinamico e devo sostituire il vecchio indirizzo con il nuovo.

    Per evitare di scrivere 520 righe su .htaccess avrei bisogno di fare questo rewrite

    http://www.pippo.pip/pluto.php?titolo=PLUTO-VA-A-SCUOLA

    che sul nuovo sito diventa

    http://www.pippo.pip/clarabella.php?page=pluto&titolo=PLUTO-VA-A-SCUOLA

    quindi è evidente che molte cose restano le stesse e devo solo sostituire:

    pluto.php?

    con

    clarabella.php?page=pluto&

    C'è qualcuno che capisce la sintassi del mod_rewrite in modo da evitare di scrivere 520 righe e poter fare il rewrite solo per i cambiamenti?

    Grazie millemila

    non ne sono certo, però prova così:

    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule /pluto.php?titolo=[.]* /clarabella.php?%{QUERY_STRING}&titolo=$1

    p.s.: Ma ti trovi con il mod rewrite perchè non abolisci del tutto il parametro titolo=xxxx e fai una url direttamente **http://www.pippo.pip/**pluto-va-a-scuola.php o hai qualche particolare esigenza per cui vuoi restare con le url in quel formato?


  • User Attivo

    Ciao ellegi
    non ho particolari esigenze ma ho tutte le pagine indicizzate come primo modo e devo fare il secondo modo e non so se poi tutto funzionerebbe perfettamente su aruba.
    Fino a questo punto credo di si

    Allora:

    /pluto.php?titolo=[.]*
    fino quì tutto bene prende tutto quello che trova dopo =

    e lo riporta in

    /clarabella.php?%{QUERY_STRING}&titolo=$1

    %{QUERY_STRING} questo parametro cosa prende ?

    $1 cosa prende ?

    devo capire perchè ne ho dieci tipi diversi da fare

    Grazie Grazie


  • User Attivo

    @donbairo said:

    Ciao ellegi
    non ho particolari esigenze ma ho tutte le pagine indicizzate come primo modo e devo fare il secondo modo e non so se poi tutto funzionerebbe perfettamente su aruba.
    Fino a questo punto credo di si

    Allora:

    /pluto.php?titolo=[.]*
    fino quì tutto bene prende tutto quello che trova dopo =

    e lo riporta in

    /clarabella.php?%{QUERY_STRING}&titolo=$1

    %{QUERY_STRING} questo parametro cosa prende ?

    $1 cosa prende ?

    devo capire perchè ne ho dieci tipi diversi da fare

    Grazie Grazie

    $1 copia il parametro in titolo=[.]*
    %{QUERY_STRING} indica tutto il resto dei parametri che ci sono nell'url, nulla toglie che se ti vuoi portare anche altri parametri puoi usare più volte [.]* di là e $2 $3 dall'altro lato.


  • User Attivo

    eLLeGi

    grazie...
    credo che se si capisce i concetti poi si elabora e si cresce (mentalmente perchè di persona ormai...)

    Adesso faccio tutte le prove del caso poi faccio sapere.


  • User Attivo

    Un dubbio
    il resto dei parametri non sono uguali quindi non so se %{QUERY_STRING} funzionerebbe perchè il vecchio url che poi è quello sui motori:

    pluto.php?

    e quello nuovo diventa

    ?page=pluto&

    considerando che "clarabella.php" lo inserisco in esteso.

    Credo che la sintassi sia ottima ma non "merlinica" (mago merlino)

    quindi devo fare un rewrite da "pluto.php?" a "?page=pluto&"

    oppure sono duro come una pina?


  • User

    donbairo mi faresti un esperimento di 30 secondi cortesemente, visto che abbiamo lo stesso hosting.

    Puoi provare a vedere se ti funziona un redirect con indirizzo php completo? Cioè senza le regole trovate in modo che, se avessi voluto fare così, avresti avuto 520 righe?

    Io non son capace di realizzarmi sintassi complesse sicchè anche un centinaio di righe mi stan bene...solo che il mod rewrite mi funziona solo tra directory...e purtroppo nè contattando l'assistenza nè su questo forum riesco a trovare aiuto: http://www.giorgiotave.it/forum/posizionamento-nei-motori-di-ricerca/26766-problema-con-redirect-301-a.html