8791 sujets

Développement web côté serveur, CMS

Bonjour à vous !
Bon encore un souci au niveau du rewriting Smiley ohwell

En fait c'est très simple j'utilise cette règle de rewriting :
RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ test/index.php?url=$1 [L]


Pour changer par exemple :
monsite.com/article/
en
monsite.com/index.php?url=article

Jusque là tout va bien.

Mais lorsque j'insère un tiret dans l'adresse par exemple :
monsite.com/article-12/
et bien le tiret n'est pas pris en compte et çà me renvoie une erreur 404...

Pourtant dans ma règle de rewrite, j'ai bien spécifier qu'un tiret est accepté [a-zA-Z0-9\-\_\/]...

Quelqu'un aurait une idée ? j'aurai mal fait quelque chose ?

Merci d'avance pour votre aide Smiley smile

PS : n'hésitez pas à aller voir un autre problème : http://forum.alsacreations.com/topic-20-58226-1-Rewrite---Repertoires-virtuels---Chemin-relatif.html



Edit : voir message plus bas pour la résolution.
Modifié par totoIlEstBo (19 Oct 2011 - 22:48)
Je ne vois pas trop, j'utilise
([a-z_0-9\-]+)

pour faire passer minuscule, numéric, - et _ (pas de majuscule pour éviter les erreurs), et le "_" n'a pas besoin d'être échappé (ce n'est pas un caractère spécial).

Ton soucis ne pas venir d'ailleurs ? (fait un echo du rewrite avant tout traitement pour isoler le soucis.
Alors tout d'abord, merci pour ta réponse, qui m'a mis plus ou moins sur la voie Smiley smile
Pour le underscore "_" merci de l'info au passage, j'avais pas vraiment fait gaffe pourtant je le sais.

Mon souci venait bien du regex, en fait en mettant le tiret en dernier tout va bien.
Ma règle devient donc :
RewriteRule ^([a-z_0-9\/\-]*)$ if/index.php?url=$1 [L]


J'ai fait passer le slash avant le tiret et il est pris en compte, enfin Smiley langue

Merci encore Smiley smile