RedirectMatch avec des paramètres dans l'url

Nouveau WRInaute
Bonjour,

j'essaie de faire une redirection Apache via la fonction "RedirectMatch".
Je voudrait rediriger une URL sur une autre, en fonction d'un paramètre présent dans l'url appelée. Celle-ci est composée de cette façon :
Code:
http://www.monsite.fr/home.do?site=GEN

le paramètre "site" pouvant être égal à GEN, SPE ou AUT par exemple.

J'ai donc construit mon RedirectMatch de cette façon :
Code:
RedirectMatch permanent ^/(.*)site=(SPE|GEN)$ http://www.monsite.fr/$1site=AUT

Apparement, il ne prend pas en compte les paramètres passés dans l'url, après le "?". Si je l'enlève de mon URL appelante, cela marche sans problème.
Impossible aussi de le dé-spécialiser dans le redirect, ca ne marche pas.

En revanche, si j'écris
Code:
RedirectMatch permanent ^/(.*)$ http://www.monsite.fr/$1

mon paramètre "$1" contient bien l'ensemble de mon url, avec le paramètre "?site=GEN" par exemple, ce qui veut dire que l'ensemble de l'url est prise en compte...

J'ai testé cela sur un apache 1.3, 2... sans succès, sous linux, windows...
Auriez-vous une idée ?
Je n'ai trouvé aucunes informations sur le net disant que les "Redirect" d'Apache ne prennent pas en compte les paramètres d'une url, alors j'ai bon espoir, mais pour l'instant j'ai rien trouvé...
Merci d'avance!
 
WRInaute occasionnel
Si le mod_rewrite est activé sur ton serveur, tu peux utilisé le RewriteRule.
Exemple:
Code:
RewriteRule ^$ %{QUERY_STRING} [C]
RewriteRule variable=(.*) http://www.example.com/$1.php [R=301,L]
Cette méthode te permet d'applique une regex sur les paramètre d'une URL.

Mon exemple remplace l'URL par la chaine de paramètre. Donc le regex ne s'applique que sur les paramètre et pas sur l'URL. Mais il doit être possible d'inclure les deux.

Je te laisse faire de plus ample test et je reste à l'écoute si besoin ;)
 
Nouveau WRInaute
Bonjour,
merci pour ta réponse. Effectivement, j'ai écumé le net et j'ai trouvé une autre personne qui est confrontée au même problème mais qui n'a pas trouvé d'autre solution qu'en utilisant le rewrite...

J'ai utilisé cela qui semble plutôt marcher...
Code:
RewriteCond %{QUERY_STRING} ^site=(SPE|GEN)$
RewriteRule ^/(.*)$ http://www.monsite.fr/$1?site=AUT [R=301,L]

Merci pour ton aide!
 
Discussions similaires
T
Réponses
6
Affichages
4K
toutankharton
T
Haut