RewriteRule aide

Résolu
Vroom -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

RewriteRule ^([a-z]*)\.html$ index.php?page=$1 [L]

actuellement ça prend juste les nom avec des lettres minuscules, j'aimerais que sa prend tout, majuscules, minuscule, -, _ et même avec 1 seul caractère, faire aucune vérification.

Merci

1 réponse

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut.

Dans la classe des caractères (entre crochets), ajoute A-Z (ou le drapeau NC) et 0-9 (pour les chiffres). Si tu veux autorisé les tirets et les espaces soulignés (underscore), tu peux les ajouter (le tiret doit toujours être à la fin).

L'étoile est un quantificateur. Il veut dire "aucun, un, ou plusieurs fois ce qui précède". Pour obliger la présence d'un caractère au moins avant « .html », il faut utiliser le signe +.

Voilà ce que ça donne :
RewriteRule ^([a-z0-9_-]+)\.html$ index.php?page=$1 [L,NC]
0
Vroom
 
D'accord, je dois aussi mettre A-Z pour les majuscules ? A quoi sert [L,NC] à la fin ?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Inutile d'ajouter A-Z si tu mets NC entre crochet.
Ça veut dire « No Case », ce qui permet d'ignorer la casse.
« L » (pour "Last") permet de stopper les vérifications si l'URL correspond.
0
Vroom
 
Ok, donc pour le L, il faut pas le mettre dans les autres RewriteRule au dessus ?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il permet de stopper le moteur de réécriture, afin qu'il ne vérifie pas les expressions suivantes.
Il n'est pas obligatoire, ça dépend de ce que tu as écris.
0