Page 1 sur 1
Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 10:42
par Neoh56
Bonjour
Voila j'ai un probleme depuis peu.
J'ai .htaccess et dedans :
Code : Tout sélectionner
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-b([0-9]+)\.html$ /produit.php?produit=$2
RedirectPermanent url-b8188.html http://www.site.com/url2-b8197.html
mon probleme vient de la redirection permanente en fait il redirige bien vers
http://www.site.com/url2-b8197.html mais il rajoute a la fin ?produit=8197
Ce qui done en url de destination
http://www.site.com/url2-b8197.html?produit=8197 au lieu de
http://www.site.com/url2-b8197.html
Comment resoudre le problème merci de votre aide
@++
Re: Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 11:23
par Mazarini
Bonjour,
Remplacer :
RewriteRule ^(.*)-b([0-9]+)\.html$ /produit.php?produit=$2
RedirectPermanent url-b8188.html
http://www.site.com/url2-b8197.html
par :
RewriteRule ^url-b8188.html$ /url2-b8197.html
RewriteRule ^(.*)-b([0-9]+)\.html$ /produit.php?produit=$2
En fait ce qui ce passe avec tes règles :
- le serveur recoit la requête url-b8188.html
- il répond aller voir url2-b8197.html
- le serveur recoit la requête url2-b8197.html
- il fait le rewrite
Re: Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 11:49
par Ryle
A tester, mais je pense qu'en inversant simplement les deux lignes, il fera la redirection permanente pour la page concernée sans appliquer la réécriture...
Au besoin tu dois également pouvoir ajouter l'option [L] pour indiquer qu'il ne doit pas poursuivre le traitement du htaccess une fois la redirection effectuée
Re: Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 11:57
par Mazarini
Bonjour,
Le problème, c'est que le redirect provoque une nouvelle requete du navigateur. C'est à cette seconde requete que l'on applique le rewrite.
J'avoue ne pas être très compétent en htaccess.
Re: Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 12:03
par Ryle
Je fonctionne souvent à tâtons également
Et effectivement, je n'avais pas fait attention à cela... dans ce cas il faut probablement modifier la règle du RewriteRule pour distinguer "url" de "url2"...
Re: Variable en trop dans redirection .htaccess
Posté : 22 avr. 2011, 13:24
par Mazarini
Bonjour,
A priori en remplacant le redirect par RewriteRule ^url-b8188.html$ /url2-b8197.html [L] ca devrait passer (si c'est comme ca pour stopper le traitement avec l'option L)
Je commence seulement à m'intéresser au rewrite pour améliorer mes url, c'est pour ca que je suis ce genre de thread. Rien de tel que les problèmes des autres pour en avoir moins^^