web-dev-qa-db-fra.com

Comment puis-je réécrire une ancienne URL en utilisant des variables dans une page HTML statique?

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?

3
Craig Angus

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.

2
Craig Angus

Vous pouvez utiliser la redirection javascript sur des pages particulières, si possible dans votre cas.

0
Amit Kumar Gupta