J'essaie de rediriger les anciennes adresses URL vers les nouvelles adresses URL. L'ancien site utilisait des variables dans l'URL, mais le nouveau site utilise des URL conviviales pour le référencement.
Lorsque j'essaie de rediriger l'ancienne URL, il ne redirige pas correctement et j'obtiens des erreurs 404. Je ne suis pas sûr que la réécriture du référencement soit la cause de l'échec de l'autre condition de réécriture.
Options +FollowSymlinks RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteRule ^(.+).html index.php?seo_title=$1 [nc]
Redirect 301 /WEBPAGE http://www.example.com/WEBPAGE.html
RewriteRule ^http://www.example.co.uk/test/test.php?c=viewtest&id=56&sat=9&mainsat=1&start=0$ http://www.example.com/NEW_URL.html
ErrorDocument 404 /PAGE_NOT_FOUND.html
Question: Comment puis-je écrire le RewriteRule afin qu'il redirige l'ancienne URL?
Le problème que j'ai trouvé était que l'URL est divisée entre le fichier et les variables comme on pouvait s'y attendre.
Ainsi, tout ce qui suit le ?
est considéré comme une chaîne de requête.
Vous devez ajouter une condition pour vérifier la chaîne de requête (vous pouvez inclure des expressions régulières).
RewriteCond %{QUERY_STRING} ^viewtest&id=56&sat=9&mainsat=1&start=0$
RewriteRule ^/test/test.php$ http://www.example.com/WEBPAGE.html? [R=301,L]
Notez également que ?
après l'URL redirigée, les variables ne sont pas ajoutées à la nouvelle URL.
Vous pouvez utiliser la redirection javascript sur des pages particulières, si possible dans votre cas.