Boucle infinie...

WRInaute impliqué
Voilà, j'ai un petit problème, j'amerais que lorsque l'on tape ww.monsite.com/modules.php?name=Variable, le visiteur soit redirigé 301 vers ww.monsite.com/mots-cles.html, ça marche très bien mais mots-cles.html est lui même rewrité vers modules.php?name=Variable donc concretement, je voudrais que lorsque l'n tape ww.monsite.com/modules.php?name=Variable on soit redirigié 301 vers ww.monsite.com/mots-cles.html et que cette page affiche le contenu de ww.monsite.com/modules.php?name=Variable sans être indéfiniment redirigé. Voilà ce que j'ai mis dans mon htaccess :
Code:
RewriteRule ^mots-cles.html$ modules.php?name=Variable [L]
RewriteCond %{REQUEST_URI} ^/modules.php$
RewriteCond %{QUERY_STRING} ^name=Variable$
RewriteRule ^.* /mots-cles.html [R=301,L]
 
WRInaute occasionnel
Trois solutions :
- mettre les règles dans un httpd.conf
- changer le nom du fichier php
- adapter la condition pour qu'elle fonctionne avec THE_REQUEST plutôt qu'avec REQUEST_URI,
pour un peu plus d'explications, la version longue se trouvant dans la doc Apache
 
WRInaute impliqué
Je vais essayer avec THE_REQUEST, merci beaucoup pour ta réponse, en fait au bout de 2h sur la doc d'apache j'ai craqué et posté un message sur ce forum.
 
WRInaute impliqué
C'est bon ça marche par contre lorsque je tape ww.monsite.com/modules.php?name=Variable, ça me revvoi sur ww.monsite.com/mots-cles.html?name=Variable, vous n'avez pas une idée pour que ça ne renvoi que sur ww.monsite.com/mots-cles.html , sans les variables après? Voici mon code :
RewriteCond %{THE_REQUEST} modules.php
RewriteCond %{QUERY_STRING} name=Variable
RewriteRule ^.*$ /mots-cles.html [R=301,L]
 
WRInaute occasionnel
Code:
RewriteCond %{THE_REQUEST} modules.php 
RewriteCond %{QUERY_STRING} name=Variable 
RewriteRule ^.*$ /mots-cles.html? [R=301,L]
 
WRInaute impliqué
Merci beaucoup pour ton aide, ça marche, dernier petit problème, lorsque la redirection est faite elle redirige sur h**p://monsite.com/mots-cles.html au lien de h**p://www.monsite.com/mots-cles.html, comment celà se fait-il alors que à la base la page appelée était bien h**p://www.monsite.com/modules.php?name=Variable.
 
WRInaute occasionnel
Pour les redirections implicites, Apache utilise le domaine canonique, à savoir ce qui est déclaré en ServerName (ici monsite.com) et -www.monsite.com est probablement déclaré en ServerAlias.
Pour forcer www
Code:
RewriteCond %{THE_REQUEST} modules.php 
RewriteCond %{QUERY_STRING} name=Variable 
RewriteRule ^.*$ http://www.monsite.com/mots-cles.html? [R=301,L]
 
WRInaute impliqué
Merci beaucoup, j'avais pensé à cette solution mais je voulais savoir pourquoi apache fesait ça, maintenant je sais :)
 
Discussions similaires
Haut