1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>mod_setenvif - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
16 <p class="apache">Serveur Apache HTTP Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
20 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Module Apache mod_setenvif</h1>
24 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
26 <a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
27 <a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
28 <a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
30 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet de définir des variables d'environnement en fonction
31 de caractéristiques de la requête</td></tr>
32 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
33 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>setenvif_module</td></tr>
34 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_setenvif.c</td></tr></table>
38 <p>Le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> vous permet de définir
39 des variables d'environnement en fonction du fait que telle ou telle
40 caractéristique de la requête correspond ou non aux expressions
41 rationnelles que vous spécifiez. Ces variables d'environnement
42 peuvent être utilisées par d'autres parties du serveur pour prendre
43 des décisions quant aux actions à entreprendre.</p>
45 <p>Les directives sont interprétées selon l'ordre dans lequel elles
46 apparaîssent dans les fichiers de configuration. Ainsi, des
47 séquences plus complexes peuvent être utilisées, comme dans cet
48 exemple qui définit netscape si le navigateur est Mozilla et non
51 <div class="example"><p><code>
52 BrowserMatch ^Mozilla netscape<br />
53 BrowserMatch MSIE !netscape<br />
56 <div id="quickview"><h3 class="directives">Directives</h3>
58 <li><img alt="" src="../images/down.gif" /> <a href="#browsermatch">BrowserMatch</a></li>
59 <li><img alt="" src="../images/down.gif" /> <a href="#browsermatchnocase">BrowserMatchNoCase</a></li>
60 <li><img alt="" src="../images/down.gif" /> <a href="#setenvif">SetEnvIf</a></li>
61 <li><img alt="" src="../images/down.gif" /> <a href="#setenvifexpr">SetEnvIfExpr</a></li>
62 <li><img alt="" src="../images/down.gif" /> <a href="#setenvifnocase">SetEnvIfNoCase</a></li>
66 <li><a href="../env.html">Les variables d'environnement et le
67 serveur HTTP Apache</a></li>
70 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
71 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2>
72 <table class="directive">
73 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
74 contenu de l'en-tête HTTP User-Agent</td></tr>
75 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatch <em>regex [!]env-variable</em>[=<em>valeur</em>]
76 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
77 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
78 <tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
79 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
80 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
82 <p>La directive <code class="directive">BrowserMatch</code> est un cas
83 particulier de la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, qui définit des variables
84 d'environnement en fonction du contenu de l'en-tête de requête HTTP
85 <code>User-Agent</code>. Les deux lignes suivantes produisent le même
87 <div class="example"><p><code>
88 BrowserMatchNoCase Robot est_un_robot<br />
89 SetEnvIfNoCase User-Agent Robot est_un_robot<br />
92 <p>Quelques exemples supplémentaires :</p>
93 <div class="example"><p><code>
94 BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br />
95 BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br />
96 BrowserMatch MSIE !javascript<br />
100 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
101 <div class="directive-section"><h2><a name="BrowserMatchNoCase" id="BrowserMatchNoCase">BrowserMatchNoCase</a> <a name="browsermatchnocase" id="browsermatchnocase">Directive</a></h2>
102 <table class="directive">
103 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
104 contenu de l'en-tête HTTP User-Agent sans tenir compte de la
106 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatchNoCase <em>regex [!]env-variable</em>[=<em>valeur</em>]
107 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
108 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
109 <tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
110 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
111 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
114 <p>La directive <code class="directive">BrowserMatchNoCase</code> est
115 identique sur le plan sémantique à la directive <code class="directive"><a href="#browsermatch">BrowserMatch</a></code>. Elle permet
116 cependant une comparaison insensible à la casse. Par exemple :</p>
117 <div class="example"><p><code>
118 BrowserMatchNoCase mac platform=macintosh<br />
119 BrowserMatchNoCase win platform=windows<br />
122 <p>Les directives <code class="directive">BrowserMatch</code> et
123 <code class="directive">BrowserMatchNoCase</code> sont des cas particuliers
124 des directives <code class="directive"><a href="#setenvif">SetEnvIf</a></code>
125 et <code class="directive"><a href="#setenvifnocase">SetEnvIfNoCase</a></code>.
126 Ainsi, les deux lignes suivantes produisent le même effet :</p>
127 <div class="example"><p><code>
128 BrowserMatchNoCase Robot est_un_robot<br />
129 SetEnvIfNoCase User-Agent Robot est_un_robot<br />
133 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
134 <div class="directive-section"><h2><a name="SetEnvIf" id="SetEnvIf">SetEnvIf</a> <a name="setenvif" id="setenvif">Directive</a></h2>
135 <table class="directive">
136 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
137 attributs de la requête</td></tr>
138 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIf <em>attribut
139 regex [!]env-variable</em>[=<em>valeur</em>]
140 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
141 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
142 <tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
143 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
144 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
146 <p>La directive <code class="directive">SetEnvIf</code> permet de définir
147 des variables d'environnement en fonction des attributs de la
148 requête. L'<em>attribut</em> spécifié comme premier argument peut
149 se présenter sous l'une des quatre formes suivantes :</p>
152 <li>Un champ d'en-tête de requête HTTP (voir la <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a> pour
153 plus d'information à leur propos) ; par exemple : <code>Host</code>,
154 <code>User-Agent</code>, <code>Referer</code>, ou
155 <code>Accept-Language</code>. Il est possible d'utiliser une
156 expression rationnelle pour spécifier un jeu d'en-têtes de
159 <li>Une des caractéristiques de la requête suivantes :
161 <li><code>Remote_Host</code> - le nom d'hôte (s'il est disponible)
162 du client qui effectue la requête</li>
164 <li><code>Remote_Addr</code> - l'adresse IP du client qui effectue
167 <li><code>Server_Addr</code> - l'adresse IP du serveur qui a reçu
168 la requête (uniquement à partir des versions supérieures à
171 <li><code>Request_Method</code> - Le nom de la méthode HTTP
172 utilisée (<code>GET</code>, <code>POST</code>, <em>et
175 <li><code>Request_Protocol</code> - le nom et la version du
176 protocole utilisé pour la requête (par exemple "HTTP/0.9",
177 "HTTP/1.1", <em>etc...</em>)</li>
179 <li><code>Request_URI</code> - la ressource demandée dans la ligne
180 de requête HTTP -- en général la partie de l'URL suivant le
181 protocole et le nom du serveur, sans la chaîne d'arguments. Voir
182 la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> du module
183 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour plus d'informations sur la
184 manière de mettre en correspondance votre chaîne d'arguments.</li>
188 <li>Le nom d'une variable d'environnement parmi la liste de celles qui
189 sont associées à la requête. Ceci permet à la directive
190 <code class="directive">SetEnvIf</code> d'effectuer des tests en fonction du
191 résultat de comparaisons précédentes. Seules les variables
192 d'environnement définies par des directives
193 <code>SetEnvIf[NoCase]</code> précédentes sont disponibles pour
194 effectuer des tests de cette manière. 'Précédentes' signifie qu'elles se
195 trouvent à un niveau plus global de la configuration (par exemple au
196 niveau du serveur principal), ou plus haut chronologiquement dans le
197 contexte de la directive. Les variables d'environnement ne seront prises
198 en compte que si aucune correspondance n'a été trouvée parmi les
199 caractéristiques de la requête, et si <em>attribut</em> n'a pas été
200 spécifié sous la forme d'une expression rationnelle.</li>
202 <li>La référence à une extension d'un certificat client SSL, localisé
203 par son identifiant objet <em>oid</em>. Dans le cas d'une requête non
204 SSL, ou en l'absence d'<em>oid</em> configuré, aucune variable ne sera
205 définie. Si l'<em>oid</em> est trouvé plusieurs fois, les chaînes
206 individuelles seront concaténées, en les séparant par des virgules
207 <code>','</code>. L'<em>oid</em> doit faire référence à une extension
208 sous forme de chaîne.
212 <p>Le second argument (<em>regex</em>) est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>. Si <em>regex</em>
213 correspond à l'<em>attribut</em>, les arguments suivants sont évalués.</p>
215 <p>Le reste des arguments constitue les noms des variables à définir,
216 ainsi que les valeurs optionnelles qui doivent leur être affectées. Ils
217 peuvent se présenter sous les formes suivantes :</p>
220 <li><code><em>nom-variable</em></code>, or</li>
222 <li><code>!<em>nom-variable</em></code>, or</li>
224 <li><code><em>nom-variable</em>=<em>valeur</em></code></li>
227 <p>Dans la première forme, la valeur sera définie à "1". Dans la
228 seconde forme, la variable sera supprimée si elle a été définie au
229 préalable, et dans la troisième forme, la variable sera définie à la
230 valeur littérale spécifiée par <code><em>valeur</em></code>. Depuis
231 la version 2.0.51, Apache httpd reconnaît les occurrences de variables
232 <code>$1</code>..<code>$9</code> à l'intérieur de
233 <code><em>valeur</em></code>, et les remplace par les
234 sous-expressions entre parenthèses correspondantes de
235 <var>regex</var>.</p>
237 <div class="example"><h3>Example:</h3><p><code>
239 SetEnvIf Request_URI "\.gif$" objet_est_une_image=gif<br />
240 SetEnvIf Request_URI "\.jpg$" objet_est_une_image=jpg<br />
241 SetEnvIf Request_URI "\.xbm$" objet_est_une_image=xbm<br />
243 SetEnvIf Referer www\.mon-domaine\.example\.com référant_intra_site<br />
245 SetEnvIf objet_est_une_image xbm XBIT_PROCESSING=1<br />
247 SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" commentaire-netscape=$1<br />
249 SetEnvIf ^TS* ^[a-z].* HAVE_TS<br />
252 <p>Les trois premières lignes définissent la variable
253 d'environnement <code>objet_est_une_image</code> si l'objet de la
254 requête est un fichier image, et la quatrième définit la variable
255 <code>référant_intra_site</code> si la page référante se trouve
256 quelque part dans le site web
257 <code>www.mon-domaine.example.com</code>.</p>
259 <p>La sixième ligne définit la variable d'environnement
260 <code>commentaire-netscape</code> avec la chaîne trouvée dans le
261 champ du certificat client SSL correspondant.</p>
263 <p>La dernière ligne définit la variable d'environnement
264 <code>HAVE_TS</code> si la requête contient un en-tête dont le nom
265 commence par "TS" et dont la valeur commence par tout caractère du
270 <li><a href="../env.html">Les variables d'environnement et le
271 serveur HTTP Apache</a> pour des exemples supplémentaires.
275 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
276 <div class="directive-section"><h2><a name="SetEnvIfExpr" id="SetEnvIfExpr">SetEnvIfExpr</a> <a name="setenvifexpr" id="setenvifexpr">Directive</a></h2>
277 <table class="directive">
278 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction d'une expression</td></tr>
279 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIfExpr <em>expr
280 [!]env-variable</em>[=<em>valeur</em>]
281 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
282 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
283 <tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
284 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
285 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
287 <p>La directive <code class="directive">SetEnvIfExpr</code> permet de
288 définir des variables d'environnement en fonction d'une expression
289 <code class="directive"><If></code> <code>ap_expr</code>. Cette
290 expression est évaluée à l'exécution, et utilise les variables
291 d'environnement <em>env-variable</em> de la même manière que la
292 directive <code class="directive">SetEnvIf</code>.</p>
294 <div class="example"><p><code>
295 SetEnvIfExpr "tolower(req('X-Sendfile')) == 'd:\images\very_big.iso')" iso_delivered
298 <p>Dans cet exemple, la variable d'environnement
299 <code>iso_delivered</code> est définie chaque fois que notre
300 application tente de l'envoyer via <code>X-Sendfile</code>.</p>
302 <p>Pour un exemple plus utile, voir le cas de
303 <code>Referer</code> pour un site comportant plusieurs domaines :</p>
305 <div class="example"><p><code>
306 SetEnvIfExpr "${HTTP_REFERER} in { 'www.example.com','example.com','w2.example3.org' }" intra_site_referral
311 <li><a href="../expr.html">Les expressions dans le serveur HTTP
312 Apache</a>, pour une référence complète et davantage d'exemples.</li>
313 <li>La directive <code class="directive"><If></code> peut être
314 utilisée pour obtenir des résultats similaires.</li>
315 <li><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></li>
318 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
319 <div class="directive-section"><h2><a name="SetEnvIfNoCase" id="SetEnvIfNoCase">SetEnvIfNoCase</a> <a name="setenvifnocase" id="setenvifnocase">Directive</a></h2>
320 <table class="directive">
321 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
322 attributs de la requête sans tenir compte de la casse</td></tr>
323 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIfNoCase <em>attribut regex
324 [!]env-variable</em>[=<em>valeur</em>]
325 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
326 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
327 <tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
328 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
329 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
332 <p>La directive <code class="directive">SetEnvIfNoCase</code> est identique
333 d'un point de vue sémantique à la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, et ne s'en distingue que
334 par le fait que la comparaison des expressions rationnelles est
335 effectuée sans tenir compte de la casse. Par exemple :</p>
336 <div class="example"><p><code>
337 SetEnvIfNoCase Host Apache\.Org site=apache
340 <p>Cette ligne va définir la variable d'environnement
341 <code>site</code> avec la valeur "<code>apache</code>" si le champ
342 d'en-tête de requête HTTP <code>Host:</code> est présent et contient
343 <code>Apache.Org</code>, <code>apache.org</code>, ou une autre
344 combinaison des mêmes caractères, sans tenir compte de la casse.</p>
348 <div class="bottomlang">
349 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
350 <a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
351 <a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
352 <a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
353 <a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
354 </div><div id="footer">
355 <p class="apache">Copyright 2010 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
356 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>