Variable en trop dans redirection .htaccess

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Variable en trop dans redirection .htaccess

Re: Variable en trop dans redirection .htaccess

par Mazarini » 22 avr. 2011, 13:24

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^^

Re: Variable en trop dans redirection .htaccess

par Ryle » 22 avr. 2011, 12:03

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

par Mazarini » 22 avr. 2011, 11:57

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

par Ryle » 22 avr. 2011, 11:49

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

par Mazarini » 22 avr. 2011, 11:23

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

Variable en trop dans redirection .htaccess

par Neoh56 » 22 avr. 2011, 10:42

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
@++