Aller au contenu

Problème avec redirection 301 toute simple


Sujets conseillés

Bonjour,

Je ne suis pas un king des expressions régulière et me contente généralement de faire du copié/collé/modifié pour arriver à mes fins. J'ai déjà utilisé le htaccess pour des redirections 301 mais là rien à faire.

Voici mon htaccess:

Options +FollowSymlinks

RewriteEngine on

RewriteRule ^([a-z-]+).html$ /index.php?page=$1 [NC,L]

RewriteRule ^index.php?page=situation$ /situation-locations.html [QSA,L,R=301]

RewriteRule ^index.php?page=environnement$ /environnement-gites.html [QSA,L,R=301]

RewriteRule ^index.php?page=ty_coz$ /location-ty-coz.html [QSA,L,R=301]

RewriteRule ^index.php?page=ty_marchosi$ /location-ty-marchosi.html [QSA,L,R=301]

RewriteRule ^index.php?page=ty_saout_nord$ /location-ty-saout-nord.html [QSA,L,R=301]

RewriteRule ^index.php?page=ty_saout_sud$ /location-ty-zaout-sud.html [QSA,L,R=301]

Vous l'aurez compris, je souhaite rediriger index.php?page=situation vers situation-locations.html mais rien n'y fait ça ne marche pas. Je n'ai pourtant pas oublié le / nécessaire chez OVH. Est-ce que ce ne serait pas du au fait que mon url contient un "?" ou un "=", je ne sais pas.

Une exemple de redirection qui ne fonctionne pas: http://lezoulien.cap-sizun.com/index.php?page=situation

J'espère que vous trouverez une solution à mon problème,

Loïc

Lien vers le commentaire
Partager sur d’autres sites

Le problème vient du fait que tu tentes d'utiliser le QUERy_STRING dans ta règle, alors que mod_rewrite ne le voit pas, du moins pas à cet endroit;

Il faut utiliser une réécriture conditionnelle, comme par exemple:

RewriteCond %{QUERY_STRING} page=([a-z]*)
RewriteRule (.*) http://www.dedomaine.tld/%1.html [R=301,L]

Qui redirigera toute page avec un QUERY_STRING sous la forme page=abc vers abc.html

Lien vers le commentaire
Partager sur d’autres sites

Merci Dan pour ta réponse,

Etant donné qu'il n'y a pas de logique dans mes redirection, j'ai essayé

RewriteCond %{QUERY_STRING} page=situation

RewriteRule (.*) http://lezoulien.cap-sizun.com/situation-locations.html [R=301,L]

mais ça me redirige -http://lezoulien.cap-sizun.com/index.php?page=situation vers -http://lezoulien.cap-sizun.com/situation-locations.html?page=situation-locations

En fait, il rajoute la valeur du query string à la fin, y a t-il possibilité d'éviter ça ?

Loïc

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...

Je me répond à moi même car je suis parvenu à trouver la réponse après quelques recherches.

RewriteCond %{QUERY_STRING} ^page=environnement$

RewriteRule (^index.php$|^$) /environnement-gites.html? [R=301]

Loïc

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...