RedirectPermanent KO avec paramètres en GET

Nouveau WRInaute
Bonjour,

Je suis en train de mettre des redirect permanent pour cause de migration de site.

J'ai donc créé un fichier .htaccess dans lequel j'ai mis mes redirections. Tout fonctionne sauf les redirections permanentes avec des paramètres dans l'url. Je m'explique :

Code:
RedirectPermanent /index.php?p_id=74 http://www.new-exemple.com/toto.php

Quand je vais sur la page http://www.old-exemple.com/index.php?p_id=74, le navigateur me redirige vers http://www.new-exemple.com/index.php?p_id=74

Avez-vous une explication à cela ?

Pour info : ne ne peux utiliser l'url rewriting sur l'hébergement, c'est pour cela que j'utilise des Redirect Permanent.

Merci d'avance.
Eric
 
Nouveau WRInaute
Oui car avec des pages sans paramtres dans l'url source ça marche.

Peut être que je ne peux pas faire de redirect permanent avec des paramètres... Ou peut être que je dois protéger les paramètres...
 
WRInaute discret
Effectivement pas de paramètres avec des redirect permanent.
Il faut mettre en place la règle suivante :
Code:
RewriteCond %{QUERY_STRING} ^p_id=74$
RewriteRule ^index\.php$ http://www.new-exemple.com/toto.php? [R=301,L]

Mais sans possibilité d'utiliser l'url rewriting ça va être dur :wink:

Si quelqu'un connait une autre manière de faire, je suis également preneur.
 
Nouveau WRInaute
Merci spouiik.

Après de nouvelles recherches sur le web, le mode QSA est activé automatiquement par Apache pour les RedirectPermanent ce qui a pour conséquence de reporter la query string dans l'url cible.

Donc c'est mort pour le RedirectPermanent.

J'ai essayé d'utilisé le RedirectMatch mais celui-ci ne peut pas travailler sur la query string source.

Donc je n'ai pas le choix, je vais utiliser la réécriture d'url en l'activant.

Merci encore!
 
Nouveau WRInaute
Par contre j'ai une dernière question :

J'ai esayé de mettre ton code de réécriture d'url suivant :

Code:
RewriteCond %{QUERY_STRING} ^p_id=74$
RewriteRule ^index\.php$ http://www.new-exemple.com/toto.php? [R=301,L]

Sur une ligne de cette manière :

Code:
RewriteRule ^index\.php\?id=74$ http://www.new-exemple.com/toto.php? [R=301,L]

Mais ça ne marche pas, j'ai fait une erreur ?
 
Discussions similaires
Haut