• User

    Problemi con redirect e URL contenenti ?id=3

    Salve a tutti,
    ho un problema che non sono riuscito a risolvere. Sono certo che qualcuno di voi sarà in grado di darmi una risposta.

    per effettuare il rewrite e il redirectdegli url, stiamo attualmente utilizzando la direttiva RewriteRule^chi-siamo /pagine.php?id=3 [R=301,L], ma stiamo notando dei problemicon il funzionamento del redirect.
    In pratica ci stiamo accorgendo che ilredirect avviene solamente dalle pagine riscritte (tipo dachi-siamo.html) alle pagine con query (che hanno all'interno ?id=3) enon viceversa.
    Con nessuno dei comandi disponibili dahtaccess si riesce a far funzionare il redirect al contrario, cioèda url con query a url riscritti.
    Se si prova ad eliminare ?id=3 eriprovare il redirect, tutto funziona normalmente.
    Abbiamo provato ad utilizzare anchequesti comandi, ma senza ottenere alcun esito:
    RewriteCond %{HTTP_HOST}^soluzionivacanze.com
    RewriteCond %{QUERY_STRING} ^id=3$
    RewriteRule ^(.*)$myweb.com/test.html [R=301,L]

    Grazie per l'attenzione​


  • User

    Trovata la soluzione mettendo ? alla fine della url
    fonte: forum.html.it/forum/showthread.php?threadid=1302461

    Dopo aver inserito ? il redirect funzionava ma la pagina dava un errore di loop di reindirizzamento, problema che si è risolto in questo modo:

    1. elimando dalle url .html
    2. togliendo la direttiva L dal primo rewriterule

    In pratica abbiamo trasformato da così

    RewriteCond %{HTTP_HOST} ^soluzionivacanze.com
    RewriteCond %{QUERY_STRING} ^id=3$
    RewriteRule ^(.*)$myweb.com/test.html [R=301,L]

    a così

    RewriteRule ^chi-siamo /pagine.php?id=3RewriteCond %{REQUEST_URI} ^/pagine.php$RewriteCond %{QUERY_STRING} ^id=3$RewriteRule ^(.*)$ /chi-siamo? [R=301,L]

    Spero possa essere utile a qualcuno