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" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
17 <div id="page-header">
18 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
19 <p class="apache">Serveur Apache HTTP Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
23 <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.5</a> > <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Module Apache mod_setenvif</h1>
27 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
29 <a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
30 <a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
31 <a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
33 <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
34 de caractéristiques de la requête</td></tr>
35 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
36 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>setenvif_module</td></tr>
37 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_setenvif.c</td></tr></table>
41 <p>Le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> vous permet de définir
42 des variables d'environnement internes en fonction du fait que telle ou telle
43 caractéristique de la requête correspond ou non aux expressions
44 rationnelles que vous spécifiez. Ces variables d'environnement
45 peuvent être utilisées par d'autres parties du serveur pour prendre
46 des décisions quant aux actions à entreprendre, et pour déterminer
47 si les scripts CGI et les pages SSI doivent pouvoir y accéder.</p>
49 <p>Les directives sont interprétées selon l'ordre dans lequel elles
50 apparaîssent dans les fichiers de configuration. Ainsi, des
51 séquences plus complexes peuvent être utilisées, comme dans cet
52 exemple qui définit netscape si le navigateur est Mozilla et non
55 <pre class="prettyprint lang-config">
56 BrowserMatch ^Mozilla netscape
57 BrowserMatch MSIE !netscape
61 <div id="quickview"><h3 class="directives">Directives</h3>
63 <li><img alt="" src="../images/down.gif" /> <a href="#browsermatch">BrowserMatch</a></li>
64 <li><img alt="" src="../images/down.gif" /> <a href="#browsermatchnocase">BrowserMatchNoCase</a></li>
65 <li><img alt="" src="../images/down.gif" /> <a href="#setenvif">SetEnvIf</a></li>
66 <li><img alt="" src="../images/down.gif" /> <a href="#setenvifexpr">SetEnvIfExpr</a></li>
67 <li><img alt="" src="../images/down.gif" /> <a href="#setenvifnocase">SetEnvIfNoCase</a></li>
71 <li><a href="../env.html">Les variables d'environnement et le
72 serveur HTTP Apache</a></li>
73 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
75 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
76 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2>
77 <table class="directive">
78 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
79 contenu de l'en-tête HTTP User-Agent</td></tr>
80 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatch <em>regex [!]env-variable</em>[=<em>valeur</em>]
81 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
82 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
83 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
84 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
85 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
87 <p>La directive <code class="directive">BrowserMatch</code> est un cas
88 particulier de la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, qui définit des variables
89 d'environnement en fonction du contenu de l'en-tête de requête HTTP
90 <code>User-Agent</code>. Les deux lignes suivantes produisent le même
92 <pre class="prettyprint lang-config">
93 BrowserMatchNoCase Robot is_a_robot
94 SetEnvIfNoCase User-Agent Robot is_a_robot
98 <p>Quelques exemples supplémentaires :</p>
99 <pre class="prettyprint lang-config">
100 BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
101 BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
102 BrowserMatch MSIE !javascript
107 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
108 <div class="directive-section"><h2><a name="BrowserMatchNoCase" id="BrowserMatchNoCase">BrowserMatchNoCase</a> <a name="browsermatchnocase" id="browsermatchnocase">Directive</a></h2>
109 <table class="directive">
110 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
111 contenu de l'en-tête HTTP User-Agent sans tenir compte de la
113 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatchNoCase <em>regex [!]env-variable</em>[=<em>valeur</em>]
114 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
115 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
116 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
117 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
118 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
121 <p>La directive <code class="directive">BrowserMatchNoCase</code> est
122 identique sur le plan sémantique à la directive <code class="directive"><a href="#browsermatch">BrowserMatch</a></code>. Elle permet
123 cependant une comparaison insensible à la casse. Par exemple :</p>
124 <pre class="prettyprint lang-config">
125 BrowserMatchNoCase mac platform=macintosh
126 BrowserMatchNoCase win platform=windows
130 <p>Les directives <code class="directive">BrowserMatch</code> et
131 <code class="directive">BrowserMatchNoCase</code> sont des cas particuliers
132 des directives <code class="directive"><a href="#setenvif">SetEnvIf</a></code>
133 et <code class="directive"><a href="#setenvifnocase">SetEnvIfNoCase</a></code>.
134 Ainsi, les deux lignes suivantes produisent le même effet :</p>
135 <pre class="prettyprint lang-config">
136 BrowserMatchNoCase Robot is_a_robot
137 SetEnvIfNoCase User-Agent Robot is_a_robot
142 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
143 <div class="directive-section"><h2><a name="SetEnvIf" id="SetEnvIf">SetEnvIf</a> <a name="setenvif" id="setenvif">Directive</a></h2>
144 <table class="directive">
145 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
146 attributs de la requête</td></tr>
147 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIf <em>attribut
148 regex [!]env-variable</em>[=<em>valeur</em>]
149 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
150 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
151 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
152 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
153 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
155 <p>La directive <code class="directive">SetEnvIf</code> permet de définir
156 des variables d'environnement en fonction des attributs de la
157 requête. L'<em>attribut</em> spécifié comme premier argument peut
158 se présenter sous l'une des quatre formes suivantes :</p>
161 <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
162 plus d'information à leur propos) ; par exemple : <code>Host</code>,
163 <code>User-Agent</code>, <code>Referer</code>, ou
164 <code>Accept-Language</code>. Il est possible d'utiliser une
165 expression rationnelle pour spécifier un jeu d'en-têtes de
168 <li>Une des caractéristiques de la requête suivantes :
170 <li><code>Remote_Host</code> - le nom d'hôte (s'il est disponible)
171 du client qui effectue la requête</li>
173 <li><code>Remote_Addr</code> - l'adresse IP du client qui effectue
176 <li><code>Server_Addr</code> - l'adresse IP du serveur qui a reçu
177 la requête (uniquement à partir des versions supérieures à
180 <li><code>Request_Method</code> - Le nom de la méthode HTTP
181 utilisée (<code>GET</code>, <code>POST</code>, <em>et
184 <li><code>Request_Protocol</code> - le nom et la version du
185 protocole utilisé pour la requête (par exemple "HTTP/0.9",
186 "HTTP/1.1", <em>etc...</em>)</li>
188 <li><code>Request_URI</code> - la ressource demandée dans la ligne
189 de requête HTTP -- en général la partie de l'URL suivant le
190 protocole et le nom du serveur, sans la chaîne d'arguments. Voir
191 la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> du module
192 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour plus d'informations sur la
193 manière de mettre en correspondance votre chaîne d'arguments.</li>
197 <li>Le nom d'une variable d'environnement parmi la liste de celles qui
198 sont associées à la requête. Ceci permet à la directive
199 <code class="directive">SetEnvIf</code> d'effectuer des tests en fonction du
200 résultat de comparaisons précédentes. Seules les variables
201 d'environnement définies par des directives
202 <code>SetEnvIf[NoCase]</code> précédentes sont disponibles pour
203 effectuer des tests de cette manière. 'Précédentes' signifie qu'elles se
204 trouvent à un niveau plus global de la configuration (par exemple au
205 niveau du serveur principal), ou plus haut chronologiquement dans le
206 contexte de la directive. Les variables d'environnement ne seront prises
207 en compte que si aucune correspondance n'a été trouvée parmi les
208 caractéristiques de la requête, et si <em>attribut</em> n'a pas été
209 spécifié sous la forme d'une expression rationnelle.</li>
213 <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>
214 correspond à l'<em>attribut</em>, les arguments suivants sont évalués.</p>
216 <p>Le reste des arguments constitue les noms des variables à définir,
217 ainsi que les valeurs optionnelles qui doivent leur être affectées. Ils
218 peuvent se présenter sous les formes suivantes :</p>
221 <li><code><em>nom-variable</em></code>, or</li>
223 <li><code>!<em>nom-variable</em></code>, or</li>
225 <li><code><em>nom-variable</em>=<em>valeur</em></code></li>
228 <p>Dans la première forme, la valeur sera définie à "1". Dans la
229 seconde forme, la variable sera supprimée si elle a été définie au
230 préalable, et dans la troisième forme, la variable sera définie à la
231 valeur littérale spécifiée par <code><em>valeur</em></code>. Depuis
232 la version 2.0.51, Apache httpd reconnaît les occurrences de variables
233 <code>$1</code>..<code>$9</code> à l'intérieur de
234 <code><em>valeur</em></code>, et les remplace par les
235 sous-expressions entre parenthèses correspondantes de
236 <var>regex</var>.</p>
238 <pre class="prettyprint lang-config">
239 SetEnvIf Request_URI "\.gif$" object_is_image=gif
240 SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
241 SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
243 SetEnvIf Referer www\.mydomain\.example\.com intra_site_referral
245 SetEnvIf object_is_image xbm XBIT_PROCESSING=1
247 SetEnvIf ^TS ^[a-z] HAVE_TS
251 <p>Les trois premières lignes définissent la variable
252 d'environnement <code>objet_est_une_image</code> si l'objet de la
253 requête est un fichier image, et la quatrième définit la variable
254 <code>référant_intra_site</code> si la page référante se trouve
255 quelque part dans le site web
256 <code>www.mon-domaine.example.com</code>.</p>
258 <p>La dernière ligne définit la variable d'environnement
259 <code>HAVE_TS</code> si la requête contient un en-tête dont le nom
260 commence par "TS" et dont la valeur commence par tout caractère du
265 <li><a href="../env.html">Les variables d'environnement et le
266 serveur HTTP Apache</a> pour des exemples supplémentaires.
270 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
271 <div class="directive-section"><h2><a name="SetEnvIfExpr" id="SetEnvIfExpr">SetEnvIfExpr</a> <a name="setenvifexpr" id="setenvifexpr">Directive</a></h2>
272 <table class="directive">
273 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction d'une expression ap_expr</td></tr>
274 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIfExpr <em>expr
275 [!]env-variable</em>[=<em>valeur</em>]
276 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
277 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
278 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
279 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
280 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
282 <p>La directive <code class="directive">SetEnvIfExpr</code> permet de
283 définir des variables d'environnement en fonction d'une expression
284 <code class="directive"><If></code> <code>ap_expr</code>. Cette
285 expression est évaluée à l'exécution, et utilise les variables
286 d'environnement <em>env-variable</em> de la même manière que la
287 directive <code class="directive">SetEnvIf</code>.</p>
289 <pre class="prettyprint lang-config">
290 SetEnvIfExpr "tolower(req('X-Sendfile')) == 'd:\images\very_big.iso')" iso_delivered
294 <p>Dans cet exemple, la variable d'environnement
295 <code>iso_delivered</code> est définie chaque fois que notre
296 application tente de l'envoyer via <code>X-Sendfile</code>.</p>
298 <p>Il pourrait être plus utile de définir une variable rfc1918 si
299 l'adresse IP distante est une adresse privée au sens de la RFC 1918
302 <pre class="prettyprint lang-config">
303 SetEnvIfExpr "-R '10.0.0.0/8' || -R '172.16.0.0/12' || -R '192.168.0.0/16'" rfc1918
309 <li><a href="../expr.html">Les expressions dans le serveur HTTP
310 Apache</a>, pour une référence complète et davantage d'exemples.</li>
311 <li>La directive <code class="directive"><If></code> peut être
312 utilisée pour obtenir des résultats similaires.</li>
313 <li><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></li>
316 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
317 <div class="directive-section"><h2><a name="SetEnvIfNoCase" id="SetEnvIfNoCase">SetEnvIfNoCase</a> <a name="setenvifnocase" id="setenvifnocase">Directive</a></h2>
318 <table class="directive">
319 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
320 attributs de la requête sans tenir compte de la casse</td></tr>
321 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIfNoCase <em>attribut regex
322 [!]env-variable</em>[=<em>valeur</em>]
323 [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
324 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
325 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
326 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
327 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
330 <p>La directive <code class="directive">SetEnvIfNoCase</code> est identique
331 d'un point de vue sémantique à la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, et ne s'en distingue que
332 par le fait que la comparaison des expressions rationnelles est
333 effectuée sans tenir compte de la casse. Par exemple :</p>
334 <pre class="prettyprint lang-config">
335 SetEnvIfNoCase Host Example\.Org site=apache
339 <p>Cette ligne va définir la variable d'environnement
340 <code>site</code> avec la valeur "<code>example</code>" si le champ
341 d'en-tête de requête HTTP <code>Host:</code> est présent et contient
342 <code>Example.Org</code>, <code>example.org</code>, ou une autre
343 combinaison des mêmes caractères, sans tenir compte de la casse.</p>
347 <div class="bottomlang">
348 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
349 <a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
350 <a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
351 <a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
352 <a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
353 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
354 <script type="text/javascript"><!--//--><![CDATA[//><!--
355 var comments_shortname = 'httpd';
356 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_setenvif.html';
358 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
359 d.write('<div id="comments_thread"><\/div>');
360 var s = d.createElement('script');
361 s.type = 'text/javascript';
363 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
364 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
367 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
369 })(window, document);
370 //--><!]]></script></div><div id="footer">
371 <p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
372 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
373 if (typeof(prettyPrint) !== 'undefined') {