Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138

    Mod_Rewrite e punto interrogativo

    Ragazzi ho esigenza di fare un pò di 301 con un htaccess ma ho un problema che vi illustro con un esempio.

    Utilizzando la seguente regola

    RewriteCond %{QUERY_STRING} ^lng=it$
    RewriteRule ^guestbook/guest_view.php(.*)$ /it/guestbook/guestbook.html [L,R=301]

    RewriteCond %{QUERY_STRING} ^lng=en$
    RewriteRule ^guestbook/guest_view.php(.*)$ /en/guestbook/guestbook.html [L,R=301]

    il rewrite funziona cioè le due pagine puntano alle due nuove corrispettive, il problema che accodato al nuovo link rimane la variabile della condizione, cioè le nuove URL sono

    /it/guestbook/guestbook.html?lng=it
    /en/guestbook/guestbook.html?lng=en

    E' possibile evitare tutto ciò?

    Il problema nasce dal fatto che non riesco a reindirizzare in altro modo le pagine che contengono una variabile, perchè il punto interrogativo mi da problemi.

    Spero possiate aiutarmi.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858

    Re: Mod_Rewrite e punto interrogativo

    Originariamente inviato da zeroh
    Il problema nasce dal fatto che non riesco a reindirizzare in altro modo le pagine che contengono una variabile, perchè il punto interrogativo mi da problemi.
    puoi spiegarti meglio?
    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    hiedo scusa, mi rendo conto che fretta e avvilimento hanno reso il posto poco chiaro.

    Ho un sito che devo pubblicare rinnovato di cui non voglio perdere l'indizzazione, quindi ho necessità di fare il 301 di alcune pagine che nel vecchio sistema avevano variabili nel path, mentre il nuovo sistema le rende più digeribili ai motori di ricerca.

    ad esempio la pagina guestbook che una volta si raggiungeva con questo link: guestbook/guestbook.asp?lng=it (ne ho usato uno semplice appositamente) adesso è raggiungibile al it/guestbook/guestbook.html

    Adesso devo dire al motore di ricerca che il mio nuovo url (redirect permanente 301) che la nuova pagina si chiama in un modo diverso.

    All'inizio ho avuto molti problemi perchè il punto interrogativo non veniva interpretato dal rewriterule, poi ho trovato la soluzione che ho postato prima, cioè:

    RewriteCond %{QUERY_STRING} ^lng=it$
    RewriteRule ^guestbook/guest_view.php(.*)$ /it/guestbook/guestbook.html [L,R=301]

    il redirect funziona però succede una cosa molto fastidiosa, cioè al nuovo url viene fatto un append della variabile (che nel nuovo sistema non serve più) cioè quando digitò guestbook/guestbook.asp?lng=it il tutto viene reindirizzato a it/guestbook/guestbook.html?lng=it

    C'è possibilità di evitare l'append?

    Grazie.

  4. #4
    ho paura che la query string non possa essere tolta perchè serve alla pagina di destinazione per ricevere i valori anche se nel tuo caso non li usi perchè hai una pagina html.

    Potresti cambiare sistema.

    nel htaccess potresti scrivere una cosa del genere
    RewriteRule ^(ita)(.*)$ /ita/guestbook/guestbook.html [L,QSA]

    poi fai una prova col browser con questa request:
    www.tuosito.com/ita/guestbook/guestbook.asp


    dime se ti va bene. PS. occhio, ora come ora il redirect funziona se nella request è presente la stringa "ita".
    quindi se ad esempio scrivi www.tuosito.com/guestbook/guestbookita.asp il redirect funzionerà. bisogna fixare il bug

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.