From: Vincent Deffontaines Historiquement, il existe de nombreuses variantes dans la syntaxe
des expressions permettant d'exprimer une condition dans les
- différents modules du serveur HTTP Apache. à ce titre, des travaux sont
- en cours pour n'utiliser qu'une seule variante nommée
+ différents modules du serveur HTTP Apache. À ce titre, des travaux sont
+ en cours pour n'utiliser qu'une seule variante nommée
ap_expr, pour toutes les directives de configuration. Ce
- document décrit l'interpréteur d'expressions ap_expr.
+ document décrit l'interpréteur d'expressions ap_expr.
La Forme de Backus-Naur
- (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire
- les règles syntaxiques des langages de programmation.
+ (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire
+ les règles syntaxiques des langages de programmation.
L'interpréteur d'expressions fournit plusieurs variables de la
+ L'interpréteur d'expressions fournit plusieurs variables de la
forme
@@ -119,17 +119,17 @@ listfunction ::= listfuncname "(" word ")"
%{HTTP_HOST}
. Notez que la valeur d'une variable
- peut dépendre de la phase du traitement de la requête au cours de
- laquelle elle est évaluée. Par exemple, une expression utilisée dans
- une directive %{REMOTE_USER}
ne sera pas encore définie à ce stade.%{REMOTE_USER}
ne sera pas encore définie à ce stade.
Les variables suivantes contiennent la valeur de l'en-tête de
- requête HTTP correspondant. La fonction
- req
permet d'extraire les valeurs des autres en-têtes.
Les variables suivantes contiennent la valeur de l'en-tête de
+ requête HTTP correspondant. La fonction
+ req
permet d'extraire les valeurs des autres en-têtes.
Autres variables liées aux requêtes
+Autres variables liées aux requêtes
Nom | Description | |
---|---|---|
REQUEST_METHOD |
- La méthode HTTP de la requête entrante (par exemple + | La méthode HTTP de la requête entrante (par exemple
GET ) |
REQUEST_SCHEME |
- Le protocole associé à l'URI de la requête | Le protocole associé à l'URI de la requête |
REQUEST_URI |
- L'URI de la requête | L'URI de la requête |
REQUEST_FILENAME |
||
SCRIPT_FILENAME |
- Identique à REQUEST_FILENAME | Identique à REQUEST_FILENAME |
SCRIPT_USER |
- Le nom d'utilisateur du propriétaire du script. | Le nom d'utilisateur du propriétaire du script. |
SCRIPT_GROUP |
Le nom du groupe auquel appartient le script. | |
PATH_INFO |
||
QUERY_STRING |
- La chaîne de paramètres de la requête courante | La chaîne de paramètres de la requête courante |
IS_SUBREQ |
- "true " si la requête courante est une
- sous-requête, "false " dans le cas contraire | "true " si la requête courante est une
+ sous-requête, "false " dans le cas contraire |
THE_REQUEST |
- La requête complète (par exemple "GET /index.html
+ | |
REMOTE_ADDR |
- L'adresse IP de l'hôte distant | L'adresse IP de l'hôte distant |
REMOTE_HOST |
- Le nom d'hôte de l'hôte distant | Le nom d'hôte de l'hôte distant |
REMOTE_USER |
- Le nom de l'utilisateur authentifié (s'il existe) | Le nom de l'utilisateur authentifié (s'il existe) |
REMOTE_IDENT |
- Le nom de l'utilisateur défini par | Le nom de l'utilisateur défini par |
SERVER_NAME |
La valeur de la directive | |
SERVER_PORT |
- Le port associé au serveur virtuel courant ; voir la + | Le port associé au serveur virtuel courant ; voir la
directive |
SERVER_ADMIN |
La valeur de la directive | |
SERVER_PROTOCOL |
- Le protocole utilisé par la requête | Le protocole utilisé par la requête |
DOCUMENT_ROOT |
La valeur de la directive basic ") | |
CONTENT_TYPE |
- Le type de contenu de la réponse | Le type de contenu de la réponse |
HANDLER |
Le nom du gestionnaire qui a - généré la réponse | |
HTTPS |
- "on " si la requête utilise https,
+ | "on " si la requête utilise https,
"off " dans le cas contraire |
IPV6 |
"on " si la connexion utilise IPv6,
"off " dans le cas contraire | |
REQUEST_LOG_ID |
- L'identifiant du message d'erreur associé à la requête (voir + | L'identifiant du message d'erreur associé à la requête (voir
la directive |
CONN_LOG_ID |
- L'identifiant du message d'erreur associé à la connexion + | L'identifiant du message d'erreur associé à la connexion
(voir la directive |
Nom | Description | |
TIME_YEAR |
- L'année courante (par exemple 2010 ) | L'année courante (par exemple 2010 ) |
TIME_MON |
Le mois courant (1 , ..., 12 ) | |
TIME_DAY |
@@ -244,32 +244,32 @@ listfunction ::= listfuncname "(" word ")"
||
TIME_SEC |
Les secondes de la date courante | |
TIME_WDAY |
- Le jour de la semaine (Ã partir de 0 pour
+ | Le jour de la semaine (à partir de 0 pour
dimanche) |
TIME |
La date et heure au format 20101231235959 | |
SERVER_SOFTWARE |
- La chaîne contenant la version du serveur | La chaîne contenant la version du serveur |
API_VERSION |
La date de la version de l'API (module magic number) |
Certains modules, comme
Certains modules, comme
à l'exception de quelques opérateurs de comparaison internes, les - opérateurs binaires sont de la forme +
À l'exception de quelques opérateurs de comparaison internes, les
+ opérateurs binaires sont de la forme
"-[a-zA-Z][a-zA-Z0-9_]+
", autrement dit un signe moins
- et au moins deux caractères. Le nom est insensible à la casse. Les
- modules peuvent fournir des opérateurs binaires supplémentaires.
Nom | Alternative | Description |
---|---|---|
== |
= |
- Egalité de chaînes | Egalité de chaînes |
!= |
- | Inégalité de chaînes | Inégalité de chaînes |
< |
- | Chaîne inférieure à | Chaîne inférieure à |
<= |
- | Chaîne inférieure ou égale à | Chaîne inférieure ou égale à |
> |
- | Chaîne supérieure à | Chaîne supérieure à |
>= |
- | Chaîne supérieure ou égale à | Chaîne supérieure ou égale à |
-eq |
eq |
- Egalité d'entiers | Egalité d'entiers |
-ne |
ne |
- Inégalité d'entiers | Inégalité d'entiers |
-lt |
lt |
- Entier inférieur à | Entier inférieur à |
-le |
le |
- Entier inférieur ou égal à | Entier inférieur ou égal à |
-gt |
gt |
- Entier supérieur à | Entier supérieur à |
-ge |
ge |
- Entier supérieur ou égal à | Entier supérieur ou égal à |
Nom | Description |
---|---|
-ipmatch |
- L'adresse IP correspond à adresse/masque | L'adresse IP correspond à adresse/masque |
-strmatch |
- la chaîne de gauche correspond au modèle constitué par la - chaîne de droite (contenant des caractères génériques *, ?, []) | la chaîne de gauche correspond au modèle constitué par la + chaîne de droite (contenant des caractères génériques *, ?, []) |
-strcmatch |
- idem -strmatch , mais insensible à la casse | idem -strmatch , mais insensible à la casse |
-fnmatch |
idem -strmatch , mais les slashes ne sont pas
- pris en compte par les caractères génériques |
Les opérateurs unaires sont de la forme "-[a-zA-Z]
",
- autrement dit le signe moins et un caractère. Le nom est
- sensible à la casse. Les modules peuvent fournir des opérateurs
- unaires supplémentaires.
Les opérateurs unaires sont de la forme "-[a-zA-Z]
",
+ autrement dit le signe moins et un caractère. Le nom est
+ sensible à la casse. Les modules peuvent fournir des opérateurs
+ unaires supplémentaires.
Nom | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-n |
- Vrai si la chaîne n'est pas vide | Vrai si la chaîne n'est pas vide | |||||||||||||||||||||||||||||||||
-z |
- Vrai si la chaîne est vide | Vrai si la chaîne est vide | |||||||||||||||||||||||||||||||||
-T |
- Faux si la chaîne est vide, "0 ",
+ | Faux si la chaîne est vide, "0 ",
"off ", "false ", ou "no "
- (insensibilité à la casse). Vrai dans le cas contraire. | |||||||||||||||||||||||||||||||||
-R |
Idem "%{REMOTE_ADDR} -ipmatch ... ", en plus
efficace
@@ -367,56 +367,56 @@ listfunction ::= listfuncname "(" word ")"
Normalement, les fonctions dont la valeur est une chaîne acceptent une chaîne - comme argument et renvoient une chaîne. Les noms de fonctions sont - insensibles à la casse. Les modules peuvent fournir des fonctions - supplémentaires. +Normalement, les fonctions dont la valeur est une chaîne acceptent une chaîne + comme argument et renvoient une chaîne. Les noms de fonctions sont + insensibles à la casse. Les modules peuvent fournir des fonctions + supplémentaires.
En plus des fonctions dont la valeur est une chaîne, il existe + En plus des fonctions dont la valeur est une chaîne, il existe
aussi des fonctions dont la valeur est une liste, qui acceptent une
- chaîne comme argument, et renvoient une liste de mots, autrement dit
- une liste de chaînes. La liste de mot peut être utilisée avec
- l'opérateur spécial -in . Les noms de fonctions sont
+ insensibles à la casse. Les modules peuvent fournir des fonctions
+ supplémentaires.
Il n'existe pas de fonctions internes dont la valeur est une
liste. Le module | ||||||||||||||||||||||||||||||||||
Nom | Alternative | Description | |||||||||||||||||||||||||||||||||
-in |
in |
- chaîne contenue dans une liste de chaînes | chaîne contenue dans une liste de chaînes | ||||||||||||||||||||||||||||||||
/regexp/ |
m#regexp# |
- Expression rationnelle (la seconde forme permet de spécifier - des délimiteurs autres que /) | Expression rationnelle (la seconde forme permet de spécifier + des délimiteurs autres que /) | ||||||||||||||||||||||||||||||||
/regexp/i |
m#regexp#i |
- Expression rationnelle insensible à la casse | Expression rationnelle insensible à la casse | ||||||||||||||||||||||||||||||||
$0 ... $9 |
- | Références arrières dans les expressions rationnelles | Références arrières dans les expressions rationnelles |
Les chaînes $0
... $9
permettent de
- référencer les groupes de capture en provenance d'expressions
- rationnelles précédemment exécutées et mises en correspondance avec
- succès. Elles ne peuvent normalement être utilisées que dans la
- même expression que celle mise en correspondance, mais certains
- modules permettent de les utiliser de manière spéciale.
Les chaînes $0
... $9
permettent de
+ référencer les groupes de capture en provenance d'expressions
+ rationnelles précédemment exécutées et mises en correspondance avec
+ succès. Elles ne peuvent normalement être utilisées que dans la
+ même expression que celle mise en correspondance, mais certains
+ modules permettent de les utiliser de manière spéciale.