Redirection 301 : ne fonctionne pas du tout

Nouveau WRInaute
Je viens de changer les URL d'un fichier de test.php?id=111 en page/111
La règle de réécriture :
Code:
RewriteRule ^page[/]([0-9]+)$  test.php?id=$1 [L]
ce qui marche très bien.
Je dois reprendre cet exemple pour un site donc au niveau du référencement je souhaite mettre en place une redirection 301 sur les pages déjà indexée par google et dont les URL on le mauvais format. Par exemple si la page "test.php?id=999" est appelée, une redirection 301 devra se faire vers "page/999" J'ai donc testé avec cette règle :
Code:
RewriteRule ^test\.php\?id=999$  page/999 [R=301,L]
Je n'ai pas l'impression que ça a fontcionné. La page est directement appelée étant donné qu'elle existe toujours et dans la barre d'adresse j'ai toujours l'URL "test.php?id=999". Voici le contenu du fichier .htaccess :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /test/test_url_rewriting/
RewriteRule ^test\.php\?id=999$  page/999 [R=301,L]
RewriteRule ^page[/]([0-9]+)$  test.php?id=$1 [L]
Y aurait-il une erreur quelque part ?
 
WRInaute passionné
Re: Redirection 301 : ne fonctinne pas du tout...

Je crois qu'il faut séparer la querystring dans une condition, du genre :

Code:
RewriteCond %{QUERY_STRING} ^id=999$
RewriteRule ^test\.php$  page/999 [R=301,L]
 
Nouveau WRInaute
Re: Redirection 301 : ne fonctinne pas du tout...

J'ai aussi testé avec cette condition mais ça redirige mal et j'ai ce message d'erreur :
La page n'est pas redirigée correctement
Et ça me réécrit l'URL de cette manière : page/999?id=999
Je ne sais pas du tout pourquoi il rajoute le query_string en bout d'URL
 
WRInaute discret
Re: Redirection 301 : ne fonctinne pas du tout...

C'est à cause d'une boucle de redirection que vous avez générée via votre code.

Pour éviter ce problème, vous pouvez lire mon tutoriel à ce sujet (https://www.webrankinfo.com/forum/t/tutoriel-eviter-les-boucles-de-redirection.168006/).

Néanmoins, je vais vous proposer une solution encore plus simple pour votre cas:
Code:
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{THE_REQUEST} ^.*test\.php?id=([0-9]+)
RewriteRule ^.*$  /page/%1? [R=301,L]

RewriteRule ^page/([0-9]+)$  /test.php?id=$1 [L]
 
Nouveau WRInaute
Re: Redirection 301 : ne fonctinne pas du tout...

Merci à toi Giustino, je doutais bien qu'il y avait une boucle quelque part...
Ca marche nickel et ton tuto est bien pratique :)
a+
 
Nouveau WRInaute
Bonjour
j'ai bien lu vos articles depuis, (3h ) mais un langage difficile a retenir même en copie coller rien à faire code 500 error.
mon herbergeur ma conseillé d'activé la réecriture
j'ai crée un répertoire test dedans un fichier test.html et .htaccess chargé avec filezila
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^inconnu\.html$ /test/test.html [L]
et la rien du tout même pas ok


bon passons à la redirection de ma page produit
avec ça:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^inconnu\.html$ /test/test.html [L]
redirect 301 /nouveau_chevets_bois_rouge_patines_4525.htm http://monsite.fr/index.php?id_product=8&controller=product&live_configurator_token=fe365e24b852752b9e3479b80c9acb38&id_shop=1&id_employee=1&theme=theme5&theme_font=font5

et bien la page produit indique aussi error 500

pouvez vous me donner un exemple concret d'un fichier .htaccess valable ou copiable si je peux dire.

car j'ai tout essayé avec uniquement redirectpermanent ou redirect 301 seul mais rien n'y fait:
RedirectPermanent /nouveau_chevets_bois_rouge_patines_4525.htm http://monsite.fr/index.php?id_product=8&controller=product&live_configurator_token=fe365e24b852752b9e3479b80c9acb38&id_shop=1&id_employee=1&theme=theme5&theme_font=font5

Merci à vous :)
BoB...
 
Discussions similaires
Haut