| Classe |
Type
| Description |
| [F] |
Interdit
|
Instruit au serveur de retourner un 403 Forbidden au client. |
| [L] |
Dernière règle
|
Instruit au serveur d'arrêter la réécriture après que la directive précédente est été traitée.Permet de sortir prématurément d'une boucle.
|
| [N] |
Suivant
|
Apache se charge de relancer la règle de réécriture jusqu'à ce que toutes les directives de réécriture soient atteintes. |
| [G] |
Gone
|
Instruit au serveur d'informer Gone (n'existe plus) message d'état. |
| [P] |
Proxy
|
Instruit au serveur de traiter les demandes par mod_proxy |
| [C] |
Chaînage
|
Instruit au serveur de chaîner la règle actuelle avec la ou les règles précédentes jusqu’à la première règle ne se terminant pas par [C]
Apache interprète ce flag comme suit : s’il y a réécriture (la règle est vérifiée), la règle suivante est exécutée avec la chaîne réécrite en entrée. Si la règle ne se vérifie pas, toutes les règles qui suivent jusqu’à la première ne comportant pas le flag [C] ne sont pas appliquées.
|
| [R] |
Redirection
|
Instruit Apache de délivrer une redirection, ce qui provoque au navigateur une demande vers la réécriture / URL. |
| [NC] |
No Case
|
Instruit Apache de traiter la directive en restant insensible à la casse. |
| [PT] |
Pass Through
|
Instruit le mod_rewrite de passer l'URL réécrite à Apache après pour un futur traitement.
|
| [OR] |
OR
|
"OU" est un Opérateur logique qui permet de lier ensemble plusieurs expressions, il suffit que l'une des expressions soit vraie pour que le règle s'applique voir table de vérité. |
| [NE] |
No Escape
|
Instruit le serveur d'analyser le résultat sans échapper caractères. |
| [NS] |
No Subrequest
|
Instruit le serveur de passer (sauter) la directive si c'est une sous requête interne |
| [S=x] |
Skip
|
Instruit le serveur de sauter la/les prochaines "x" nombre de règles, si une correspondance est trouvée.
|
| [E=variable:value] |
variable d'environnement
|
Instruit le serveur de donner la valeur d'une variable d'environnement. |
| [T=MIME-type] |
Mime Type
|
déclare le type de format de fichier de la ressource cible |
| [] |
les crochets
|
Les crochets sont principalement utilisées pour définir une série de caractères correspondant à une classe. exemple: [xyz] correspond soit un x, y ou z
|
| []+ |
les parenthèses +
|
Combinaison de classe de caractères à l'intérieur des crochets avec tout autre caractère. exemple: [xyz]+ définit tout ensemble de caractères associé aux caractère entre crochets. est valide xs, ys, zs, ou toute autre combinaison avec ces caractères. |
| [^] |
spécifie la classe d'un caractère qui n'est pas compris entre crochets
|
Sera définit valide tous caractères à l'exeption de ceux entre crochets. par exemple: [^ xyz] définit tout alphabétique qui n'est ni x, ni y, ni z.
exemple: [^/.] définit tout caractère qui n'est ni slash , ni un point.
exemple: [^/.]+ définit tout ensemble de caractères qui ne contient ni slash , ni un point.
|
| [a-z] |
spécifie la fouchette d'une classe de caractères
|
le tiret (-) entre deux caractères dans une classe de caractères entre crochets désigne la gamme de caractères entre eux.
exemple: [a-v] définit tout alphabétique compris entre a et v exemple: [a-zA-Z] définit tout alphabétique minuscules et les majuscules de a à z.
exemple: [a-p0-8] définit tout alphabétique en minuscule compris entre a et p et définit tout numérique compris entre 0 et 8.
|
| [QSA] |
Query String Append
|
Rajoute le QUERY_STRING à la fin de l’expression, après la réécriture. A réserver pour la dernière règle de réécriture. Utilisée le plus souvent avec le flag [L], comme dans [QSA,L] |
| |
Type
| Description |
| ( ) |
parenthèses
|
utilisées pour grouper ensemble de caractères en les considérant comme une seule unité. Les parenthèses autour d'une regex permettent de capturer le contenu qui correspond à cette regex Le contenu est stocké dans une variable appelée $1. Si il existe plusieurs parenthèses dans une même regex, alors les variables $2, $3, etc.. seront utilisées. exemple: la regex "(palpitation)" retourne valide pour "nation" |
| { } |
accolades
|
Définissent une répétition On utilise la virgule pour donner les bornes de l'intervalle de répétition. exemple: la regex ".{2,6}" correspond à une suite de 2 à 6 caractères quelconques. cette répétition est en fait une sorte de boucle infinie (while) tant que.
exemple: {HTTP_USER_AGENT} tant que la variable d'environnement
|
| ^ |
ancrage de début de chaîne
|
Iindique le début d'une regex (regex =expressions régulières ) chaîne de test.
exemple :" ^$" définit une chaîne vide. exemple : "^.*$" le modèle standard pour toutes les correspondances exemple: ^domain.* définit une chaîne qui commence avec le terme domain qui est précédée de n'importe quel caractère.
|
| $ |
ancrage de fin de chaîne
|
Iindique la fin d'une regex (regex =expressions régulières ) chaîne de test. Est placé après la toute dernière lettre de la dernière ligne de la procédure. exemple: ^domain\.com$ définit la chaîne domain.com
|
| + |
plus
|
Correspond à un ou de plusieurs du ou des précédents caractères. Le plus + est presque comme l'étoile *, au détail près que la suite doit comporter au moins une occurence.
exemple: "a+" correspond en fait à une suite de 1 ou plusieurs a, et donc est équivalent à "aa*".
exemple: "^abc+": chaine qui commence par "ab" suivie de un ou plusieurs "c" ("abc", "abcc" etc..)
|
| - |
tiret
|
Instruit "de ne pas" réécrire l'URL |
| * |
étoile
|
Signifie "le caractère ou la régex précédent(e) répété(e) de 0 à plusieurs fois". exemple: la regex "a*" signifie une suite de 0 ou plusieurs a. exemple: la regex ".*" signifie une suite de 0 ou plusieurs caractères quelconques.
|
| . |
point
|
signifie "nimporte quel caractère". |
| # |
dièse
|
Le # charge le serveur d'ignorer la ligne. utilisés pour inclure des commentaires. chaque ligne de commentaires exige son propre # , il est de bonne pratique d'utiliser uniquement des lettres, des chiffres, des tirets et caractères de soulignement. cette pratique contribuera à éliminer / éviter les éventuelles erreurs d'analyse du serveur . |
| \ |
antislash
|
Sert pour échapper les caractères spéciaux ^ $ ! . * | exemple, utilisez \. pour échapper un point. |
| | |
pipe
|
déclare une logique "ou" exemple: "(x|y)" correspond si x ou y est trouvé.
|
| ! |
exclamation
|
déclare la négation (pas). par exemple, !string correspond à tout sauf string |
| ? |
Interrogation
|
Déclare que le caractère précédent est optionel. exmple: "abc?" chaine qui contient "ab" suivie de aucun ou un "c" considère valide si trouvé ("ab" ou "abc")
|
| |
|
Description |
| -d |
|
Teste si la chaîne de caractères est un répertoire existant. |
| -f |
|
Teste si la chaîne de caractères est un fichier existant. |
| -s |
|
Teste si le fichier en chaîne de test a une valeur non nulle. |