• User Newbie

    Problema nel creare una regola di redirect

    Salve a tutti, questo è il mio primo post, e prima di scrivere desidero ringraziare tutti coloro che con le loro precedenti discussioni mi hanno permesso di imparare un sacco di cose.

    Ora vengo al mio problema. Ho un sito con qualche migliaio di pagine dinamiche e ho riscritto tutte le url con il metodo del rewrite_url mediante il file htaccess. Ora sto cercando di reindirizzare le pagine dinamiche all'url creata con la regola, onde evitare le pagine duplicate (ho riscritto gli url, ma molti di questi erano già stati indicizzati da Google). Dopo problemi iniziali dovuti alla mia ignoranza sull'ostico argomento, e dopo numerose documentazioni trovate online credo di aver capito come funziona il tutto, solo che mi trovo
    davanti ad un ostacolo presumo insormontabile, a causa della mia
    scelta originaria degli url statici. Esemplifico, con url di fantasia:

    La mia url dinamica è del tipo: esempio.it/dettaglio.php?id_fum=4&id_p=6
    la mia regola di rewrite trasforma l'url in esempio.it/dettaglio/topolino-4/paperino-6.html
    Ho riscritto l'url in questo modo per visualizzare ciò che la pagina
    mostrerà (in questo esempio il fumetto Topolino e il personaggio
    Paperino)

    Ora, utilizzando la rewrite_cond come spiegato nel sempre ottimo sito
    html.it dalla guida di Fabio Sutto applico questa regola

    RewriteCond %{QUERY_STRING} ^$
    #Effettuo il rewriting ed aggiungo una variabile "semaforo" (rew=1)
    alla query string
    RewriteRule ^([^/]+)/([^/]+).html dettaglio.php?id_fum=$1&id_p=
    $2&rew=1

    e appendo la variabile rew=1 in coda alla query string dell'url reale
    in caso di accesso tramite url statico, e la pagina caricata e
    nascosta dietro all'url trasformato sarà esempio.it/dettaglio.php?id_fum=4&id_p=6&rew=1

    Se invece clicco sull'url dinamico reale esempio.it/dettaglio.php?id_fum=4&id_p=6
    applico una rewrite_cond che verifica la mancanza della variabile
    "semaforo"

    RewriteCond %{QUERY_STRING} ^(.)=(.)&(.)=(.)$
    RewriteCond %{QUERY_STRING} !^.rew=1.$
    il redirect 301 dall'url dotato di query string a quello
    pseudo statico
    RewriteRule ^.*$ ????

    Solo che qui mi fermo perchè non riesco ad applicare una regola
    generale per la pagina esempio.it/dettaglio.php in quanto non
    riesco a recuperare le variabili "Topolino" e "Paperino" che dovrei
    applicare all'url fittizio dal mio url dinamico.

    L'unica soluzione sarebbe quella di applicare tante rewrite_cond
    quanti gli url da trasformare, solo che sono più di 4000 e non mi
    sembra il caso.
    Esiste un modo alternativo??
    Al limite mi conviene tramite il file robots.txt mettere in Disallow tutte le pagine dinamiche onde evitarne l'indicizzazione e il relativo contenuto duplicato?

    Grazie in anticipo x le risposte
    Leo