Supprimer les parametre derrière le ndd

WRInaute impliqué
Salut,

Comment rediriger
Code:
www.example.com/?blablabla
vers
Code:
www.example.com/


Code:
rewriterule ^?(.*)$ /
ne fonctionne pas

Une idée ?
 
WRInaute impliqué
... Non, si je demande, c'est que ça ne fonctionne pas... erreur 500.
Le coup du ? à la fin pour ne pas passer les paramètres, je connais.

C'est juste qu'il doit y avoir un problème de syntaxe quelque part.
 
WRInaute accro
En fait tu veux faire quoi ? Rediriger tout un domaine vers un autre ? rediriger toutes les pages d'un nom de domaine vers sa racine ?
 
WRInaute impliqué
Les commandes ne sont-ils pas sensible à la casse ? (rewriterule = RewriteRule ?)

Bref, il y a une autre erreur. Dans ta règle, tu met un "?" => ^?...
Hors, dans une expression régulière, le point d’interrogation signifie "présent ou pas".
Genre : test? correspondra à "test" mais aussi à "tes".

Donc, là, ta règle est foireuse. J'imagine que tu souhaitai détecter les paramètres d'URL. Mais pour cela, il faut passer par RewriteCond (j'ai du le dire une bonne dizaine de fois sur ce forum :D).
Code:
RewriteCond %{QUERY_STRING} .+
RewriteRule ^$ /? [L,R=301]

On redirige si présence de paramètre d'URL.
Ça devrait passer.
 
WRInaute impliqué
Dans ton RewriteCond :
* les parenthèses ne servent à rien puisque tu ne réutilises pas la valeur
* ^ et $ signifient respectivement "commence par" et "fini par". Hors, cela n'a de sens que quand on commence et fini réellement par quelque chose (ex: ^dé.ut$). Comme tu souhaites faire correspondre à tout à partir du moment où il y a au moins un caractère, alors ".+" suffit amplement.
 
WRInaute impliqué
L'action n'est pas la même.

^$ signifie que ça ne doit commencer et finir par rien du tout. Donc, seule ta page racine sera concernée.
 
Discussions similaires
Haut