RewriteRule aide

Résolu
Vroom -  
avion-f16 Messages postés 19182 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

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
    1. Vroom
       
      D'accord, je dois aussi mettre A-Z pour les majuscules ? A quoi sert [L,NC] à la fin ?
      0
    2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      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
    3. Vroom
       
      Ok, donc pour le L, il faut pas le mettre dans les autres RewriteRule au dessus ?
      0
    4. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      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