[Résolu]Rewriting avec des noms de fichiers contenant des -

Surfeurdu33_greg

Nouveau WRInaute
Bonjour,

Je suis en train de mettre en place l'url rewriting sur mon site et je me pose plusieurs questions aux sujet des regex :

Quelle est la difference entre ces deux : ?

RewriteRule ^([a-zA-Z0-9]+).html /index.php?navig=$1 [L]

RewriteRule ^([[:alnum:]]+).html /index.php?navig=$1 [L]

Ensuite, ce genre de regex me permet de faire passer un lien du type :

http://www.jsp33127.fr/index.php?navig=blog

a ceci : http://www.jsp33127.fr/blog.html

Par contre j'ai ce lien là qui me pose problème :

http://www.jsp33127.fr/index.php?navig=liste-membres

Ma regex ne fonctionne pas j'ai l'impression, sans doute a cause du "-".

Je dois rajouter quelque chose à ma regex ?

Merci d'avance
 

spiderkid

Nouveau WRInaute
sinon t'élargit ta règle a tout les caractères et pas seulement aux alphanumériques, avec un truc du genre :

RewriteRule ^(.*).html /index.php?navig=$1 [L]
 

spiderkid

Nouveau WRInaute
Ca devient dessuite plus difficile, la regle que j'ai donner est trop large pour ton cas.

Ne serait-il pas plus facile pour toi de remplacer les "-" dans tes adresses ? Par exemples en les remplacant par un autre séparateur du genre "|" ou autre ... car tu ne pourras pas l'utiliser en même temps dans une regles et comme séparateur entre deux regles. Je sais pas si je me fait comprendre.
 

Franco

WRInaute impliqué
Salut,

J'ai pile poil le même problème que toi (j'ai ouvert un fil ci-plus bas, "url rewriting me donne mal de tête").

Je suis tout ouïe (si on peut dire) pour une solution.
 

spiderkid

Nouveau WRInaute
juste une question tu as mis les 2 regles :

RewriteRule ^(.*).html /index.php?navig=$1 [L]
RewriteRule ^(.*)-([0-9+])\.html$ /index.php?navig=$1&page=$2 [L]

si c'est le cas ca ne marchera pas ...
1 - le mécanisme s'arretera a la première regle et n'arrivera pas a la seconde (la première règle étant plus générale que la seconde)
2 - (je n'en suis pas sur) Même en les inversant il est possible que la nouvelle règle ne marche pas car il na va pas comprendre la règle "(.*)-([0-9+])" vu que le "-" peut être un élément de la première partie de la règle.
 

Surfeurdu33_greg

Nouveau WRInaute
Oui effectivement ca fonctionne.

Mais est-ce la bonne méthode.

J'aimerai aussi savoir où est-ce que je peux trouver un bon tuto pour comprendre tout les caractères d'une règle, comme le [L] oui bien des expression régulières les plus courante ?

Ca m'éviterai de polluer le forum...
 

Discussions similaires

Haut