|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
|
|
Packit |
90a5c9 |
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
This file is generated from xml source: DO NOT EDIT
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
-->
|
|
Packit |
90a5c9 |
<title>Les expressions dans le serveur HTTP Apache - Serveur HTTP Apache Version 2.4</title>
|
|
Packit |
90a5c9 |
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
|
Packit |
90a5c9 |
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
|
Packit |
90a5c9 |
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
|
|
Packit |
90a5c9 |
<script src="./style/scripts/prettify.min.js" type="text/javascript">
|
|
Packit |
90a5c9 |
</script>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
|
|
Packit |
90a5c9 |
<body id="manual-page">
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossaire | Plan du site
|
|
Packit |
90a5c9 |
Serveur HTTP Apache Version 2.4
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache > Serveur HTTP > Documentation > Version 2.4Les expressions dans le serveur HTTP Apache
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Langues Disponibles: en |
|
|
Packit |
90a5c9 |
fr
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Historiquement, il existe de nombreuses variantes dans la syntaxe
|
|
Packit |
90a5c9 |
des expressions permettant d'exprimer une condition dans les
|
|
Packit |
90a5c9 |
différents modules du serveur HTTP Apache. À ce titre, des travaux sont
|
|
Packit |
90a5c9 |
en cours pour n'utiliser qu'une seule variante nommée
|
|
Packit |
90a5c9 |
ap_expr, pour toutes les directives de configuration. Ce
|
|
Packit |
90a5c9 |
document décrit l'interpréteur d'expressions ap_expr.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Le type d'expression ap_expr est appelé à remplacer la
|
|
Packit |
90a5c9 |
plupart des autres types d'expressions dans HTTPD. Par exemple, la
|
|
Packit |
90a5c9 |
directive obsolète SSLRequire peut être remplacée par la
|
|
Packit |
90a5c9 |
directive Require
|
|
Packit |
90a5c9 |
expr.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Variables
|
|
Packit |
90a5c9 |
Opérateurs binaires
|
|
Packit |
90a5c9 |
Opérateurs unaires
|
|
Packit |
90a5c9 |
Fonctions
|
|
Packit |
90a5c9 |
Exemples d'expressions
|
|
Packit |
90a5c9 |
Autres
|
|
Packit |
90a5c9 |
Comparaison avec SSLRequire
|
|
Packit |
90a5c9 |
Historique de version
|
|
Packit |
90a5c9 |
Voir aussi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La Forme de Backus-Naur
|
|
Packit |
90a5c9 |
(souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation permettant de décrire
|
|
Packit |
90a5c9 |
les règles syntaxiques des langages de programmation. En
|
|
Packit |
90a5c9 |
général, les expressions représentent des valeurs booléennes. Dans
|
|
Packit |
90a5c9 |
ce cas, le point de départ de la BNF est expr .
|
|
Packit |
90a5c9 |
Cependant, certaines directives comme LogMessage utilisent comme
|
|
Packit |
90a5c9 |
paramètres des expressions qui représentent des chaînes de
|
|
Packit |
90a5c9 |
caractères. Dans ce cas, le point de départ de la BNF est
|
|
Packit |
90a5c9 |
string .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
expr ::= "true" | "false"
|
|
Packit |
90a5c9 |
| "!" expr
|
|
Packit |
90a5c9 |
| expr "&&" expr
|
|
Packit |
90a5c9 |
| expr "||" expr
|
|
Packit |
90a5c9 |
| "(" expr ")"
|
|
Packit |
90a5c9 |
| comp
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
comp ::= stringcomp
|
|
Packit |
90a5c9 |
| integercomp
|
|
Packit |
90a5c9 |
| unaryop word
|
|
Packit |
90a5c9 |
| word binaryop word
|
|
Packit |
90a5c9 |
| word "in" "{" wordlist "}"
|
|
Packit |
90a5c9 |
| word "in" listfunction
|
|
Packit |
90a5c9 |
| word "=~" regex
|
|
Packit |
90a5c9 |
| word "!~" regex
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
stringcomp ::= word "==" word
|
|
Packit |
90a5c9 |
| word "!=" word
|
|
Packit |
90a5c9 |
| word "<" word
|
|
Packit |
90a5c9 |
| word "<=" word
|
|
Packit |
90a5c9 |
| word ">" word
|
|
Packit |
90a5c9 |
| word ">=" word
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
integercomp ::= word "-eq" word | word "eq" word
|
|
Packit |
90a5c9 |
| word "-ne" word | word "ne" word
|
|
Packit |
90a5c9 |
| word "-lt" word | word "lt" word
|
|
Packit |
90a5c9 |
| word "-le" word | word "le" word
|
|
Packit |
90a5c9 |
| word "-gt" word | word "gt" word
|
|
Packit |
90a5c9 |
| word "-ge" word | word "ge" word
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
wordlist ::= word
|
|
Packit |
90a5c9 |
| wordlist "," word
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
word ::= word "." word
|
|
Packit |
90a5c9 |
| digit
|
|
Packit |
90a5c9 |
| "'" string "'"
|
|
Packit |
90a5c9 |
| """ string """
|
|
Packit |
90a5c9 |
| variable
|
|
Packit |
90a5c9 |
| rebackref
|
|
Packit |
90a5c9 |
| function
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
string ::= stringpart
|
|
Packit |
90a5c9 |
| string stringpart
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
stringpart ::= cstring
|
|
Packit |
90a5c9 |
| variable
|
|
Packit |
90a5c9 |
| rebackref
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
cstring ::= ...
|
|
Packit |
90a5c9 |
digit ::= [0-9]+
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
variable ::= "%{" varname "}"
|
|
Packit |
90a5c9 |
| "%{" funcname ":" funcargs "}"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
rebackref ::= "$" [0-9]
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function ::= funcname "(" word ")"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
listfunction ::= listfuncname "(" word ")"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
L'interpréteur d'expressions fournit plusieurs variables de la
|
|
Packit |
90a5c9 |
forme %{HTTP_HOST} . Notez que la valeur d'une variable
|
|
Packit |
90a5c9 |
peut dépendre de la phase du traitement de la requête au cours de
|
|
Packit |
90a5c9 |
laquelle elle est évaluée. Par exemple, une expression utilisée dans
|
|
Packit |
90a5c9 |
une directive <If > sera évaluée avant
|
|
Packit |
90a5c9 |
la phase d'authentification. Par conséquent, la variable
|
|
Packit |
90a5c9 |
%{REMOTE_USER} ne sera pas encore définie à ce stade.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les variables suivantes contiennent la valeur de l'en-tête de
|
|
Packit |
90a5c9 |
requête HTTP correspondant. La fonction
|
|
Packit |
90a5c9 |
req permet d'extraire les valeurs des autres
|
|
Packit |
90a5c9 |
en-têtes. L'utilisation de ces variables peut provoquer
|
|
Packit |
90a5c9 |
l'ajout du nom d'en-tête correspondant à l'en-tête Vary de la
|
|
Packit |
90a5c9 |
réponse HTTP, sauf spécification contraire pour la directive
|
|
Packit |
90a5c9 |
qui accepte l'expression comme paramètre. La function req_novary permet de
|
|
Packit |
90a5c9 |
modifier ce comportement.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HTTP_ACCEPT
|
|
Packit |
90a5c9 |
HTTP_COOKIE
|
|
Packit |
90a5c9 |
HTTP_FORWARDED
|
|
Packit |
90a5c9 |
HTTP_HOST
|
|
Packit |
90a5c9 |
HTTP_PROXY_CONNECTION
|
|
Packit |
90a5c9 |
HTTP_REFERER
|
|
Packit |
90a5c9 |
HTTP_USER_AGENT
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Autres variables liées aux requêtes
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
REQUEST_METHOD
|
|
Packit |
90a5c9 |
La méthode HTTP de la requête entrante (par exemple
|
|
Packit |
90a5c9 |
GET )
|
|
Packit |
90a5c9 |
REQUEST_SCHEME
|
|
Packit |
90a5c9 |
Le protocole associé à l'URI de la requête
|
|
Packit |
90a5c9 |
REQUEST_URI
|
|
Packit |
90a5c9 |
La partie chemin de l'URI de la requête
|
|
Packit |
90a5c9 |
DOCUMENT_URI
|
|
Packit |
90a5c9 |
Idem REQUEST_URI
|
|
Packit |
90a5c9 |
REQUEST_FILENAME
|
|
Packit |
90a5c9 |
Le chemin complet dans le système de fichiers local du
|
|
Packit |
90a5c9 |
fichier ou du script correspondant à la requête, si le serveur
|
|
Packit |
90a5c9 |
l'a dèjà déterminé à l'instant où REQUEST_FILENAME
|
|
Packit |
90a5c9 |
est référencée. Dans le cas contraire, comme dans un
|
|
Packit |
90a5c9 |
contexte de serveur virtuel, même valeur que REQUEST_URI
|
|
Packit |
90a5c9 |
SCRIPT_FILENAME
|
|
Packit |
90a5c9 |
Identique à REQUEST_FILENAME
|
|
Packit |
90a5c9 |
LAST_MODIFIED
|
|
Packit |
90a5c9 |
La date et heure de dernière modification du fichier au
|
|
Packit |
90a5c9 |
format 20101231235959 , si elle est déjà connue du
|
|
Packit |
90a5c9 |
serveur au moment où LAST_MODIFIED est référencé.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
SCRIPT_USER
|
|
Packit |
90a5c9 |
Le nom d'utilisateur du propriétaire du script.
|
|
Packit |
90a5c9 |
SCRIPT_GROUP
|
|
Packit |
90a5c9 |
Le nom du groupe auquel appartient le script.
|
|
Packit |
90a5c9 |
PATH_INFO
|
|
Packit |
90a5c9 |
L'information relative au nom de chemin située en fin, voir
|
|
Packit |
90a5c9 |
la directive AcceptPathInfo
|
|
Packit |
90a5c9 |
QUERY_STRING
|
|
Packit |
90a5c9 |
La chaîne de paramètres de la requête courante
|
|
Packit |
90a5c9 |
IS_SUBREQ
|
|
Packit |
90a5c9 |
"true " si la requête courante est une
|
|
Packit |
90a5c9 |
sous-requête, "false " dans le cas contraire
|
|
Packit |
90a5c9 |
THE_REQUEST
|
|
Packit |
90a5c9 |
La requête complète (par exemple "GET /index.html
|
|
Packit |
90a5c9 |
HTTP/1.1")
|
|
Packit |
90a5c9 |
REMOTE_ADDR
|
|
Packit |
90a5c9 |
L'adresse IP de l'hôte distant
|
|
Packit |
90a5c9 |
REMOTE_PORT
|
|
Packit |
90a5c9 |
Le port de l'hôte distant (versions 2.4.26 et supérieures)
|
|
Packit |
90a5c9 |
REMOTE_HOST
|
|
Packit |
90a5c9 |
Le nom d'hôte de l'hôte distant
|
|
Packit |
90a5c9 |
REMOTE_USER
|
|
Packit |
90a5c9 |
Le nom de l'utilisateur authentifié, s'il existe (non
|
|
Packit |
90a5c9 |
disponible à l'intérieur d'un bloc <If> )
|
|
Packit |
90a5c9 |
REMOTE_IDENT
|
|
Packit |
90a5c9 |
Le nom de l'utilisateur défini par mod_ident
|
|
Packit |
90a5c9 |
SERVER_NAME
|
|
Packit |
90a5c9 |
La valeur de la directive ServerName du serveur virtuel courant
|
|
Packit |
90a5c9 |
SERVER_PORT
|
|
Packit |
90a5c9 |
Le port associé au serveur virtuel courant ; voir la
|
|
Packit |
90a5c9 |
directive ServerName
|
|
Packit |
90a5c9 |
SERVER_ADMIN
|
|
Packit |
90a5c9 |
La valeur de la directive ServerAdmin du serveur virtuel courant
|
|
Packit |
90a5c9 |
SERVER_PROTOCOL
|
|
Packit |
90a5c9 |
Le protocole utilisé par la requête
|
|
Packit |
90a5c9 |
DOCUMENT_ROOT
|
|
Packit |
90a5c9 |
La valeur de la directive DocumentRoot du serveur virtuel
|
|
Packit |
90a5c9 |
courant
|
|
Packit |
90a5c9 |
AUTH_TYPE
|
|
Packit |
90a5c9 |
La valeur de la directive AuthType (par exemple
|
|
Packit |
90a5c9 |
"basic ")
|
|
Packit |
90a5c9 |
CONTENT_TYPE
|
|
Packit |
90a5c9 |
Le type de contenu de la réponse (non
|
|
Packit |
90a5c9 |
disponible à l'intérieur d'un bloc <If> )
|
|
Packit |
90a5c9 |
HANDLER
|
|
Packit |
90a5c9 |
Le nom du gestionnaire qui a
|
|
Packit |
90a5c9 |
généré la réponse
|
|
Packit |
90a5c9 |
HTTP2
|
|
Packit |
90a5c9 |
"on " si la requête utilise http/2,
|
|
Packit |
90a5c9 |
"off " dans le cas contraire
|
|
Packit |
90a5c9 |
HTTPS
|
|
Packit |
90a5c9 |
"on " si la requête utilise https,
|
|
Packit |
90a5c9 |
"off " dans le cas contraire
|
|
Packit |
90a5c9 |
IPV6
|
|
Packit |
90a5c9 |
"on " si la connexion utilise IPv6,
|
|
Packit |
90a5c9 |
"off " dans le cas contraire
|
|
Packit |
90a5c9 |
REQUEST_STATUS
|
|
Packit |
90a5c9 |
Le code d'erreur HTTP de la requête (non
|
|
Packit |
90a5c9 |
disponible à l'intérieur d'un bloc <If> )
|
|
Packit |
90a5c9 |
REQUEST_LOG_ID
|
|
Packit |
90a5c9 |
L'identifiant du message d'erreur associé à la requête (voir
|
|
Packit |
90a5c9 |
la directive ErrorLogFormat )
|
|
Packit |
90a5c9 |
CONN_LOG_ID
|
|
Packit |
90a5c9 |
L'identifiant du message d'erreur associé à la connexion
|
|
Packit |
90a5c9 |
(voir la directive ErrorLogFormat )
|
|
Packit |
90a5c9 |
CONN_REMOTE_ADDR
|
|
Packit |
90a5c9 |
L'adresse IP du correspondant pour la connexion (voir le module
|
|
Packit |
90a5c9 |
mod_remoteip )
|
|
Packit |
90a5c9 |
CONTEXT_PREFIX
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
CONTEXT_DOCUMENT_ROOT
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Variables diverses
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
TIME_YEAR
|
|
Packit |
90a5c9 |
L'année courante (par exemple 2010 )
|
|
Packit |
90a5c9 |
TIME_MON
|
|
Packit |
90a5c9 |
Le mois courant (01 , ..., 12 )
|
|
Packit |
90a5c9 |
TIME_DAY
|
|
Packit |
90a5c9 |
Le jour courant dans le mois (01 , ...)
|
|
Packit |
90a5c9 |
TIME_HOUR
|
|
Packit |
90a5c9 |
Les heures de la date courante (00 , ...,
|
|
Packit |
90a5c9 |
23 )
|
|
Packit |
90a5c9 |
TIME_MIN
|
|
Packit |
90a5c9 |
Les minutes de la date courante
|
|
Packit |
90a5c9 |
TIME_SEC
|
|
Packit |
90a5c9 |
Les secondes de la date courante
|
|
Packit |
90a5c9 |
TIME_WDAY
|
|
Packit |
90a5c9 |
Le jour de la semaine (à partir de 0 pour
|
|
Packit |
90a5c9 |
dimanche)
|
|
Packit |
90a5c9 |
TIME
|
|
Packit |
90a5c9 |
La date et heure au format 20101231235959
|
|
Packit |
90a5c9 |
SERVER_SOFTWARE
|
|
Packit |
90a5c9 |
La chaîne contenant la version du serveur
|
|
Packit |
90a5c9 |
API_VERSION
|
|
Packit |
90a5c9 |
La date de la version de l'API (module magic number)
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Certains modules, comme mod_ssl , définissent des
|
|
Packit |
90a5c9 |
variables supplémentaires.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
À l'exception de quelques opérateurs de comparaison internes, les
|
|
Packit |
90a5c9 |
opérateurs binaires sont de la forme
|
|
Packit |
90a5c9 |
"-[a-zA-Z][a-zA-Z0-9_]+ ", autrement dit un signe moins
|
|
Packit |
90a5c9 |
et au moins deux caractères. Le nom est insensible à la casse. Les
|
|
Packit |
90a5c9 |
modules peuvent fournir des opérateurs binaires supplémentaires.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nom | Alternative | Description |
---|
|
|
Packit |
90a5c9 |
==
|
|
Packit |
90a5c9 |
=
|
|
Packit |
90a5c9 |
Egalité de chaînes
|
|
Packit |
90a5c9 |
!=
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Inégalité de chaînes
|
|
Packit |
90a5c9 |
<
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Chaîne inférieure à
|
|
Packit |
90a5c9 |
<=
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Chaîne inférieure ou égale à
|
|
Packit |
90a5c9 |
>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Chaîne supérieure à
|
|
Packit |
90a5c9 |
>=
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Chaîne supérieure ou égale à
|
|
Packit |
90a5c9 |
=~
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La chaîne correspond à l'expression rationnelle
|
|
Packit |
90a5c9 |
!~
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La chaîne ne correspond pas à l'expression rationnelle
|
|
Packit |
90a5c9 |
-eq
|
|
Packit |
90a5c9 |
eq
|
|
Packit |
90a5c9 |
Egalité d'entiers
|
|
Packit |
90a5c9 |
-ne
|
|
Packit |
90a5c9 |
ne
|
|
Packit |
90a5c9 |
Inégalité d'entiers
|
|
Packit |
90a5c9 |
-lt
|
|
Packit |
90a5c9 |
lt
|
|
Packit |
90a5c9 |
Entier inférieur à
|
|
Packit |
90a5c9 |
-le
|
|
Packit |
90a5c9 |
le
|
|
Packit |
90a5c9 |
Entier inférieur ou égal à
|
|
Packit |
90a5c9 |
-gt
|
|
Packit |
90a5c9 |
gt
|
|
Packit |
90a5c9 |
Entier supérieur à
|
|
Packit |
90a5c9 |
-ge
|
|
Packit |
90a5c9 |
ge
|
|
Packit |
90a5c9 |
Entier supérieur ou égal à
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
-ipmatch
|
|
Packit |
90a5c9 |
L'adresse IP correspond à adresse/masque
|
|
Packit |
90a5c9 |
-strmatch
|
|
Packit |
90a5c9 |
la chaîne de gauche correspond au modèle constitué par la
|
|
Packit |
90a5c9 |
chaîne de droite (contenant des caractères génériques *, ?, [])
|
|
Packit |
90a5c9 |
-strcmatch
|
|
Packit |
90a5c9 |
idem -strmatch , mais insensible à la casse
|
|
Packit |
90a5c9 |
-fnmatch
|
|
Packit |
90a5c9 |
idem -strmatch , mais les slashes ne sont pas
|
|
Packit |
90a5c9 |
pris en compte par les caractères génériques
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les opérateurs unaires acceptent un seul argument et sont
|
|
Packit |
90a5c9 |
de la forme "-[a-zA-Z] ",
|
|
Packit |
90a5c9 |
autrement dit le signe moins et un caractère. Le nom est
|
|
Packit |
90a5c9 |
sensible à la casse. Les modules peuvent fournir des opérateurs
|
|
Packit |
90a5c9 |
unaires supplémentaires.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nom | Description | Remarques particulières |
---|
|
|
Packit |
90a5c9 |
-d
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier.
|
|
Packit |
90a5c9 |
Vrai si le fichier existe et correspond à un
|
|
Packit |
90a5c9 |
répertoireoui
|
|
Packit |
90a5c9 |
-e
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier. Vrai si le
|
|
Packit |
90a5c9 |
fichier (ou dir ou special) existeoui
|
|
Packit |
90a5c9 |
-f
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier. Vrai si le
|
|
Packit |
90a5c9 |
fichier existe et correspond à un fichier
|
|
Packit |
90a5c9 |
régulieroui
|
|
Packit |
90a5c9 |
-s
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier. Vrai si le
|
|
Packit |
90a5c9 |
fichier existe et n'est pas videoui
|
|
Packit |
90a5c9 |
-L
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier. Vrai si le
|
|
Packit |
90a5c9 |
fichier existe et correspond à un lien
|
|
Packit |
90a5c9 |
symboliqueoui
|
|
Packit |
90a5c9 |
-h
|
|
Packit |
90a5c9 |
L'argument est traité comme un nom de fichier. Vrai si le
|
|
Packit |
90a5c9 |
fichier existe et correspond à un lien symbolique
|
|
Packit |
90a5c9 |
(identique à -L )oui
|
|
Packit |
90a5c9 |
-F
|
|
Packit |
90a5c9 |
Vrai si la chaîne correspond a un fichier valide, accessible
|
|
Packit |
90a5c9 |
avec tous les contrôles d'accès configurés pour ce chemin. A
|
|
Packit |
90a5c9 |
cette fin, une sous-requête effectue la vérification, et vous
|
|
Packit |
90a5c9 |
devez utiliser ce drapeau avec soin car il peut impacter les
|
|
Packit |
90a5c9 |
performances de votre serveur !
|
|
Packit |
90a5c9 |
-U
|
|
Packit |
90a5c9 |
Vrai si la chaîne correspond a une URL valide, accessible
|
|
Packit |
90a5c9 |
avec tous les contrôles d'accès configurés pour ce chemin. A
|
|
Packit |
90a5c9 |
cette fin, une sous-requête effectue la vérification, et vous
|
|
Packit |
90a5c9 |
devez utiliser ce drapeau avec soin car il peut impacter les
|
|
Packit |
90a5c9 |
performances de votre serveur !
|
|
Packit |
90a5c9 |
-A
|
|
Packit |
90a5c9 |
Alias pour -U
|
|
Packit |
90a5c9 |
-n
|
|
Packit |
90a5c9 |
Vrai si la chaîne n'est pas vide
|
|
Packit |
90a5c9 |
-z
|
|
Packit |
90a5c9 |
Vrai si la chaîne est vide
|
|
Packit |
90a5c9 |
-T
|
|
Packit |
90a5c9 |
Faux si la chaîne est vide, "0 ",
|
|
Packit |
90a5c9 |
"off ", "false ", ou "no "
|
|
Packit |
90a5c9 |
(insensibilité à la casse). Vrai dans le cas contraire.
|
|
Packit |
90a5c9 |
-R
|
|
Packit |
90a5c9 |
Idem "%{REMOTE_ADDR} -ipmatch ... ", en plus
|
|
Packit |
90a5c9 |
efficace
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les opérateurs marqués comme "restreints" ne sont pas disponibles
|
|
Packit |
90a5c9 |
avec certains modules comme mod_include .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Normalement, les fonctions dont la valeur est une chaîne acceptent une chaîne
|
|
Packit |
90a5c9 |
comme argument et renvoient une chaîne. Les noms de fonctions sont
|
|
Packit |
90a5c9 |
insensibles à la casse. Les modules peuvent fournir des fonctions
|
|
Packit |
90a5c9 |
supplémentaires.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nom | Description | Notes particulières |
---|
|
|
Packit |
90a5c9 |
req , http
|
|
Packit |
90a5c9 |
Lit l'en-tête de requête HTTP ; les noms
|
|
Packit |
90a5c9 |
d'en-tête correspondants peuvent être ajoutés
|
|
Packit |
90a5c9 |
à l'en-tête Vary,
|
|
Packit |
90a5c9 |
voir ci-dessous
|
|
Packit |
90a5c9 |
req_novary
|
|
Packit |
90a5c9 |
Identique à req , mais aucun nom d'en-tête n'est
|
|
Packit |
90a5c9 |
ajouté à l'en-tête Vary
|
|
Packit |
90a5c9 |
resp
|
|
Packit |
90a5c9 |
Lit l'en-tête de réponse HTTP (La plupart des en-têtes de la réponse
|
|
Packit |
90a5c9 |
ne seront pas encore définis pendant le traitement de la directive
|
|
Packit |
90a5c9 |
<If> )
|
|
Packit |
90a5c9 |
reqenv
|
|
Packit |
90a5c9 |
Recherche une variable d'environnement de requête (on
|
|
Packit |
90a5c9 |
peut aussi utiliser le raccourci v ).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
ordonnancement
|
|
Packit |
90a5c9 |
osenv
|
|
Packit |
90a5c9 |
Recherche une variable d'environnement du système
|
|
Packit |
90a5c9 |
d'exploitation
|
|
Packit |
90a5c9 |
note
|
|
Packit |
90a5c9 |
Recherche une note de requêteordonnancement
|
|
Packit |
90a5c9 |
env
|
|
Packit |
90a5c9 |
Renvoie le premier résultat positif de note ,
|
|
Packit |
90a5c9 |
reqenv , osenv ordonnancement
|
|
Packit |
90a5c9 |
tolower
|
|
Packit |
90a5c9 |
Convertit une chaîne en minuscules
|
|
Packit |
90a5c9 |
toupper
|
|
Packit |
90a5c9 |
Convertit une chaîne en majuscules
|
|
Packit |
90a5c9 |
escape
|
|
Packit |
90a5c9 |
Echappe les caractères spéciaux en codage hexadécimal
|
|
Packit |
90a5c9 |
unescape
|
|
Packit |
90a5c9 |
"Déséchappe" les chaînes codées
|
|
Packit |
90a5c9 |
en hexadécimal, en ne gardant encodés que les slashes; renvoie la chaîne vide
|
|
Packit |
90a5c9 |
si la séquence %00 est rencontrée
|
|
Packit |
90a5c9 |
base64
|
|
Packit |
90a5c9 |
Encode la chaîne en base64
|
|
Packit |
90a5c9 |
unbase64
|
|
Packit |
90a5c9 |
Décode les chaînes codées en base64, renvoie une chaîne
|
|
Packit |
90a5c9 |
tronquée si le caractère 0x00 est rencontré
|
|
Packit |
90a5c9 |
md5
|
|
Packit |
90a5c9 |
Génère un hash de la chaîne en utilisant MD5, puis code le
|
|
Packit |
90a5c9 |
hash obtenu en hexadécimal
|
|
Packit |
90a5c9 |
sha1
|
|
Packit |
90a5c9 |
Génère un hash de la chaîne en utilisant SHA1, puis encode
|
|
Packit |
90a5c9 |
le hash obtenu en hexadécimal
|
|
Packit |
90a5c9 |
file
|
|
Packit |
90a5c9 |
Lit le contenu d'un fichier(fins de lignes incluses, si
|
|
Packit |
90a5c9 |
elles existent)limité
|
|
Packit |
90a5c9 |
filemod
|
|
Packit |
90a5c9 |
Renvoie la date de dernière modification d'un fichier (ou 0 si le
|
|
Packit |
90a5c9 |
fichier n'existe pas ou n'est pas un fichier régulier)limité
|
|
Packit |
90a5c9 |
filesize
|
|
Packit |
90a5c9 |
Renvoie la taille d'un fichier (ou 0 si le fichier n'existe
|
|
Packit |
90a5c9 |
pas ou ne correspond pas à un fichier régulier)limité
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les fonctions marquées comme "limité" dans la dernière colonne ne sont
|
|
Packit |
90a5c9 |
pas disponibles avec certains modules comme
|
|
Packit |
90a5c9 |
mod_include .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les fonctions marquées comme "ordonnancement" dans la dernière colonne
|
|
Packit |
90a5c9 |
nécessitent une attention particulière pour l'ordonnancement des différents
|
|
Packit |
90a5c9 |
composants du serveur, spécialement lorsque la fonction est utilisée au sein
|
|
Packit |
90a5c9 |
d'une directive <If > qui est
|
|
Packit |
90a5c9 |
évaluée relativement tôt.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Ordonnancement des variables d'environnement
|
|
Packit |
90a5c9 |
Lorsque des variables d'environnement sont évaluées au sein d'une directive
|
|
Packit |
90a5c9 |
<If >, il est important de tenir
|
|
Packit |
90a5c9 |
compte du moment où cette évaluation intervient dans le traitement de la
|
|
Packit |
90a5c9 |
requête. Par exemple, toute directive définie en dehors d'un contexte de
|
|
Packit |
90a5c9 |
serveur virtuel (directory, location, htaccess) aura peu de chance d'être
|
|
Packit |
90a5c9 |
déjà exécutée. Ainsi la directive SetEnvIf est une directive qui s'exécute
|
|
Packit |
90a5c9 |
avant cette évaluation.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Lorsque reqenv est utilisé en dehors de la directive
|
|
Packit |
90a5c9 |
<If >, l'évaluation survient en
|
|
Packit |
90a5c9 |
général plus tard, mais le moment exact dépend de la directive dans laquelle
|
|
Packit |
90a5c9 |
l'expression a été utilisée.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Lorsque les fonctions req ou http sont
|
|
Packit |
90a5c9 |
utilisées, le nom d'en-tête sera automatiquement ajouté à l'en-tête
|
|
Packit |
90a5c9 |
Vary de la réponse HTTP, sauf spécification contraire pour la
|
|
Packit |
90a5c9 |
directive qui accepte l'expression comme paramètre. La
|
|
Packit |
90a5c9 |
fonction req_novary permet d'empêcher l'ajout de noms
|
|
Packit |
90a5c9 |
d'en-têtes à l'en-tête Vary.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
En plus des fonctions dont la valeur est une chaîne, il existe
|
|
Packit |
90a5c9 |
aussi des fonctions dont la valeur est une liste, qui acceptent une
|
|
Packit |
90a5c9 |
chaîne comme argument, et renvoient une liste de mots, autrement dit
|
|
Packit |
90a5c9 |
une liste de chaînes. La liste de mot peut être utilisée avec
|
|
Packit |
90a5c9 |
l'opérateur spécial -in . Les noms de fonctions sont
|
|
Packit |
90a5c9 |
insensibles à la casse. Les modules peuvent fournir des fonctions
|
|
Packit |
90a5c9 |
supplémentaires.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Il n'existe pas de fonctions internes dont la valeur est une
|
|
Packit |
90a5c9 |
liste. Le module mod_ssl fournit la fonction
|
|
Packit |
90a5c9 |
PeerExtList . Voir la description de la directive
|
|
Packit |
90a5c9 |
SSLRequire pour plus de
|
|
Packit |
90a5c9 |
détails (notez que la fonction PeerExtList peut aussi
|
|
Packit |
90a5c9 |
être utilisée en dehors de la directive SSLRequire ).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les exemples suivants montent comment utiliser les
|
|
Packit |
90a5c9 |
expressions pour évaluer les requêtes :
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Comparer le nom d'hôte avec example.com et rediriger vers
|
|
Packit |
90a5c9 |
# www.example.com si le nom d'hôte correspond
|
|
Packit |
90a5c9 |
<If "%{HTTP_HOST} == 'example.com'">
|
|
Packit |
90a5c9 |
Redirect permanent "/" "http://www.example.com/"
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Forcer le type text/plain si un fichier fait l'objet d'une
|
|
Packit |
90a5c9 |
# requête dont la chaîne de paramètres contient 'forcetext'
|
|
Packit |
90a5c9 |
<If "%{QUERY_STRING} =~ /forcetext/">
|
|
Packit |
90a5c9 |
ForceType text/plain
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# N'autoriser l'accès à ce contenu que pendant les heures de
|
|
Packit |
90a5c9 |
# travail
|
|
Packit |
90a5c9 |
<Directory "/foo/bar/business">
|
|
Packit |
90a5c9 |
Require expr %{TIME_HOUR} -gt 9 && %{TIME_HOUR} -lt 17
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Vérifie si un en-tête HTTP correspond à une des valeurs d'une liste
|
|
Packit |
90a5c9 |
<If "%{HTTP:X-example-header} in { 'foo', 'bar', 'baz' }">
|
|
Packit |
90a5c9 |
La définition de l'en-tête correspond à une des valeurs recherchées
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Recherche la valeur d'une expression rationnelle dans une variable
|
|
Packit |
90a5c9 |
# d'environnement, et renvoie la négation du résultat.
|
|
Packit |
90a5c9 |
<If "! reqenv('REDIRECT_FOO') =~ /bar/">
|
|
Packit |
90a5c9 |
La condition est vérifiée
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Vérifie le résultat de la recherche d'une correspondance d'URI dans un
|
|
Packit |
90a5c9 |
# contexte de répertoire avec l'option -f
|
|
Packit |
90a5c9 |
<Directory "/var/www">
|
|
Packit |
90a5c9 |
AddEncoding x-gzip gz
|
|
Packit |
90a5c9 |
<If "-f '%{REQUEST_FILENAME}.unzipme' && ! %{HTTP:Accept-Encoding} =~ /gzip/">
|
|
Packit |
90a5c9 |
SetOutputFilter INFLATE
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
</Directory>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Vérifie l'adresse IP du client
|
|
Packit |
90a5c9 |
<If "-R '192.168.1.0/24'">
|
|
Packit |
90a5c9 |
Header set matched true
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Exemple de fonction dans un contexte booléen
|
|
Packit |
90a5c9 |
<If "md5('foo') == 'acbd18db4cc2f85cedef654fccc4a4d8'">
|
|
Packit |
90a5c9 |
Header set checksum-matched true
|
|
Packit |
90a5c9 |
</If>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Function example in string context
|
|
Packit |
90a5c9 |
Header set foo-checksum "expr=%{md5:foo}"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# L'exemple suivant retarde l'évaluation de la clause de condition par rapport à
|
|
Packit |
90a5c9 |
# <If>
|
|
Packit |
90a5c9 |
Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path\.php$#"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
# Journalisation conditionnelle
|
|
Packit |
90a5c9 |
CustomLog logs/access-errors.log common "expr=%{REQUEST_STATUS} >= 400"
|
|
Packit |
90a5c9 |
CustomLog logs/access-errors-specific.log common "expr=%{REQUEST_STATUS} -in {'405','410'}"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Nom | Alternative | Description |
---|
|
|
Packit |
90a5c9 |
-in
|
|
Packit |
90a5c9 |
in
|
|
Packit |
90a5c9 |
chaîne contenue dans une liste de mots
|
|
Packit |
90a5c9 |
/regexp/
|
|
Packit |
90a5c9 |
m#regexp#
|
|
Packit |
90a5c9 |
Expression rationnelle (la seconde forme permet de spécifier
|
|
Packit |
90a5c9 |
des délimiteurs autres que /)
|
|
Packit |
90a5c9 |
/regexp/i
|
|
Packit |
90a5c9 |
m#regexp#i
|
|
Packit |
90a5c9 |
Expression rationnelle insensible à la casse
|
|
Packit |
90a5c9 |
$0 ... $9
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Références arrières dans les expressions rationnelles
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Les chaînes $0 ... $9 permettent de
|
|
Packit |
90a5c9 |
référencer les groupes de capture en provenance d'expressions
|
|
Packit |
90a5c9 |
rationnelles précédemment exécutées et mises en correspondance avec
|
|
Packit |
90a5c9 |
succès. Elles ne peuvent normalement être utilisées que dans la
|
|
Packit |
90a5c9 |
même expression que celle mise en correspondance, mais certains
|
|
Packit |
90a5c9 |
modules permettent de les utiliser de manière spéciale.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La syntaxe ap_expr consiste principalement en une
|
|
Packit |
90a5c9 |
surcouche de la syntaxe de la directive obsolète SSLRequire . Vous pouvez consulter la
|
|
Packit |
90a5c9 |
liste de leur différences dans la documentation de la directive
|
|
Packit |
90a5c9 |
SSLRequire .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
La fonction req_novary est
|
|
Packit |
90a5c9 |
disponible à partir de la version 2.4.4 du serveur HTTP Apache.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Langues Disponibles: en |
|
|
Packit |
90a5c9 |
fr
|
|
Packit |
90a5c9 |
Notice:This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
|
|
Packit |
90a5c9 |
<script type="text/javascript">
|
|
Packit |
90a5c9 |
var comments_shortname = 'httpd';
|
|
Packit |
90a5c9 |
var comments_identifier = 'http://httpd.apache.org/docs/2.4/expr.html';
|
|
Packit |
90a5c9 |
(function(w, d) {
|
|
Packit |
90a5c9 |
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
var s = d.createElement('script');
|
|
Packit |
90a5c9 |
s.type = 'text/javascript';
|
|
Packit |
90a5c9 |
s.async = true;
|
|
Packit |
90a5c9 |
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
|
Packit |
90a5c9 |
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
else {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
})(window, document);
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
Copyright 2018 The Apache Software Foundation. Autorisé sous Apache License, Version 2.0.
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossaire | Plan du site <script type="text/javascript">
|
|
Packit |
90a5c9 |
if (typeof(prettyPrint) !== 'undefined') {
|
|
Packit |
90a5c9 |
prettyPrint();
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
</body></html>
|