]> granicus.if.org Git - apache/blob - docs/manual/env.html.fr
xforms
[apache] / docs / manual / env.html.fr
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
7       -->
8 <title>Apache et les variables d'environnement - 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">
13 </script>
14
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.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>
18 <p class="apache">Serveur Apache HTTP Version 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
21 <div id="path">
22 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Apache et les variables d'environnement</h1>
23 <div class="toplang">
24 <p><span>Langues Disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25 <a href="./fr/env.html" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27 <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28 <a href="./tr/env.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29 </div>
30
31      <p>Deux types de variables d'environnement affectent le serveur
32      HTTP Apache.</p>
33
34     <p>Le premier type correspond aux variables d'environnement
35     contrôlées par le système d'exploitation sous-jacent et définies
36     avant le démarrage du serveur. Leurs valeurs peuvent être utilisées
37     directement dans les fichiers de configuration, et peuvent
38     éventuellement être transmises aux scripts CGI et SSI via la
39     directive PassEnv.</p>
40
41     <p>Le second type correspond aux variables nommées appelées aussi
42     <em>variables d'environnement</em> dans lesquelles le serveur HTTP
43     Apache stocke des informations via un mécanisme spécial. Ces
44     informations peuvent servir à contrôler diverses opérations comme
45     l'enregistrement des traces ou le contrôle d'accès. On utilise aussi ces
46     variables dans le mécanisme de communication avec les programmes externes
47     comme les scripts CGI. Ce document présente différentes méthodes pour
48     manipuler et utiliser ces variables.</p>
49
50     <p>Bien que ces variables soient référencées comme <em>variables
51     d'environnement</em>, il ne faut pas les confondre avec les variables
52     d'environnement contrôlées par le système d'exploitation sous-jacent.
53     En fait, ces variables sont stockées et manipulées dans une structure
54     interne à Apache. Elles ne deviennent de véritables variables
55     d'environnement du système d'exploitation que lorsqu'elles sont mises à la
56     disposition de scripts CGI et de scripts inclus côté serveur (SSI). Si vous
57     souhaitez manipuler l'environnement du système d'exploitation sous lequel
58     le serveur s'exécute, vous devez utiliser les mécanismes standards de
59     manipulation de l'environnement fournis par l'interpréteur de commandes
60     (shell) de votre système d'exploitation.</p>
61   </div>
62 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#setting">Définition des variables d'environnement</a></li>
63 <li><img alt="" src="./images/down.gif" /> <a href="#using">Utilisation des variables d'environnement</a></li>
64 <li><img alt="" src="./images/down.gif" /> <a href="#special">Variables d'environnement à usage spécial</a></li>
65 <li><img alt="" src="./images/down.gif" /> <a href="#examples">Exemples</a></li>
66 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
67 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
68 <div class="section">
69 <h2><a name="setting" id="setting">Définition des variables d'environnement</a></h2>
70     
71     <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><li><code class="module"><a href="./mod/mod_env.html">mod_env</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li><li><code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#unsetenv">UnsetEnv</a></code></li></ul></td></tr></table>
72
73     <h3><a name="basic-manipulation" id="basic-manipulation">Manipulations de base de l'environnement</a></h3>
74         
75
76         <p>La méthode la plus élémentaire pour définir une variable
77         d'environnement au niveau d'Apache consiste à utiliser la directive
78         inconditionnelle <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code>. Les variables peuvent aussi être transmises depuis
79         l'environnement du shell à partir duquel le serveur a été démarré en
80         utilisant la directive
81         <code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code>.</p>
82
83     
84     <h3><a name="conditional" id="conditional">Définitions conditionnelles en fonction des requêtes</a></h3>
85         
86
87         <p>Pour plus de souplesse, les directives fournies par le module
88         <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> permettent de définir les
89         variables d'environnement en tenant compte des caractéristiques
90         de chaque requête. Par exemple, une
91         variable pourrait n'être définie que lorsqu'un navigateur spécifique
92         (User-Agent) a généré la requête, ou seulement quand un en-tête
93         Referer particulier est présent. La directive
94         <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> du module
95         <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> qui utilise l'option
96         <code>[E=...]</code> pour définir
97         les variables d'environnement apporte encore plus de souplesse.</p>
98
99     
100     <h3><a name="unique-identifiers" id="unique-identifiers">Identifiants uniques</a></h3>
101         
102
103         <p>Finalement, le module <code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code> définit la variable
104         d'environnement <code>UNIQUE_ID</code> pour chaque requête à une valeur
105         qui est garantie unique parmi "toutes" les requêtes sous des
106         conditions très spécifiques.</p>
107
108     
109     <h3><a name="standard-cgi" id="standard-cgi">Variables CGI standards</a></h3>
110         
111
112         <p>En plus de l'ensemble des variables d'environnement internes à la
113         configuration d'Apache et de celles transmises depuis le shell,
114         les scripts CGI et les pages SSI
115         se voient affectés un ensemble de variables
116         d'environnement contenant des méta-informations à propos de la requête
117         comme préconisé dans la
118         <a href="http://www.ietf.org/rfc/rfc3875">spécification
119         sur les CGIs</a>.</p>
120
121     
122     <h3><a name="caveats" id="caveats">Quelques mises en garde</a></h3>
123         
124
125         <ul>
126           <li>Les directives de manipulation de l'environnement ne permettent
127           pas de supplanter ou modifier les variables CGI standards.</li>
128
129           <li>Lorsqu'on utilise <code class="program"><a href="./programs/suexec.html">suexec</a></code> pour exécuter des
130           scripts CGI, l'environnement est nettoyé et réduit à un ensemble de
131           variables <em>sûres</em> avant l'exécution du script. La liste des
132           variables <em>sûres</em> est définie à la compilation dans
133           <code>suexec.c</code>.</li>
134
135           <li>Pour des raisons de portabilité, les noms des variables
136           d'environnement ne peuvent contenir que des lettres, des chiffres, et
137           le caractère "sousligné". En outre, le premier caractère ne doit pas
138           être un chiffre. Les caractères qui ne satisfont pas à ces conditions
139           seront remplacés par un caractère "sousligné" quand ils seront
140           transmis aux scripts CGI et aux pages SSI.</li>
141
142           <li>Les contenus d'en-têtes HTTP transmis aux scripts de type
143           CGI ou autre via des variables d'environnement constituent un
144           cas particulier (voir plus loin). Leur nom est converti en
145           majuscules et seuls les tirets sont remplacés par des
146           caractères '_' ("souligné") ; si le format du nom de l'en-tête
147           n'est pas valide, celui-ci est ignoré. Voir <a href="#fixheader">plus loin</a> pour une solution de
148           contournement du problème.</li>
149
150           <li>La directive <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code> s'exécute assez tard au
151           cours du traitement de la requête, ce qui signifie que des
152           directives telles que <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> et <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ne verront pas
153           les variables qu'elle aura définies.</li>
154         </ul>
155     
156   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
157 <div class="section">
158 <h2><a name="using" id="using">Utilisation des variables d'environnement</a></h2>
159     
160
161     <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_access_compat.html#allow">Allow</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_access_compat.html#deny">Deny</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li></ul></td></tr></table>
162
163     <h3><a name="cgi-scripts" id="cgi-scripts">Scripts CGI</a></h3>
164         
165
166         <p>La communication d'informations aux scripts CGI constitue une des
167         principales utilisations des variables d'environnement. Comme indiqué
168         plus haut, l'environnement transmis aux scripts CGI comprend des
169         méta-informations standards à propos de la requête, en plus des
170         variables définies dans la configuration d'Apache. Pour plus de
171         détails, se référer au
172         <a href="howto/cgi.html">tutoriel CGI</a>.</p>
173
174     
175     <h3><a name="ssi-pages" id="ssi-pages">Pages SSI</a></h3>
176         
177
178         <p>Les documents inclus côté serveur (SSI) traités par le filtre
179         <code>INCLUDES</code> du module <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>,
180         peuvent afficher les
181         variables d'environnement à l'aide de l'élément <code>echo</code>,
182         et peuvent utiliser des variables d'environnement dans les éléments
183         de contrôle de flux pour rendre certaines parties d'une page
184         conditionnelles en fonction des caractéristiques de la requête.
185         Apache fournit aussi les variables d'environnement CGI standards
186         aux pages SSI
187         comme indiqué plus haut. Pour plus de détails, se référer au
188         <a href="howto/ssi.html">tutoriel SSI</a>.</p>
189
190     
191     <h3><a name="access-control" id="access-control">Contrôle d'accès</a></h3>
192         
193
194         <p>L'accès au serveur peut être contrôlé en fonction de la valeur de
195         variables d'environnement à l'aide des directives
196         <code>allow from env=</code> et <code>deny from env=</code>.
197         En association avec la directive
198         <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, ceci confère une
199         grande souplesse au contrôle d'accès au serveur en fonction des
200         caractéristiques du client. Par exemple, vous pouvez utiliser ces
201         directives pour interdire l'accès depuis un navigateur particulier
202         (User-Agent).
203         </p>
204
205     
206     <h3><a name="logging" id="logging">Enregistrement conditionnel des traces</a></h3>
207         
208
209         <p>Les variables d'environnement peuvent être enregistrées dans le
210         fichier de log des accès à l'aide de l'option <code>%e</code> de la
211         directive <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>.
212         En outre, la décision de tracer ou non les requêtes peut être prise
213         en fonction de l'état de variables d'environnement en utilisant la
214         forme conditionnelle de la directive
215         <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>. En
216         association avec la directive <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, ceci confère une grande souplesse au contrôle
217         du traçage des requêtes. Par exemple, vous pouvez choisir de ne pas
218         tracer les requêtes pour des noms de fichiers se terminant par
219         <code>gif</code>, ou encore de ne tracer que les requêtes des clients
220         n'appartenant pas à votre sous-réseau.</p>
221
222     
223     <h3><a name="response-headers" id="response-headers">En-têtes de réponse conditionnels</a></h3>
224         
225
226         <p>La directive <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code>
227         peut se baser sur la présence ou l'absence d'une variable
228         d'environnement pour décider si un certain en-tête HTTP sera placé
229         dans la réponse au client. Ceci permet, par exemple, de n'envoyer un
230         certain en-tête de réponse que si un en-tête correspondant est présent
231         dans la requête du client.</p>
232
233     
234
235     <h3><a name="external-filter" id="external-filter">Activation de filtres externes</a></h3>
236         
237
238         <p>Les filtres externes configurés par le module
239         <code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code> à l'aide de la directive <code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code> peuvent être
240         activés de manière conditionnelle en fonction d'une variable
241         d'environnement à l'aide des options
242         <code>disableenv=</code> et <code>enableenv=</code>.</p>
243     
244
245     <h3><a name="url-rewriting" id="url-rewriting">Réécriture d'URL</a></h3>
246         
247
248         <p>La forme <code>%{ENV:<em>variable</em>}</code> de
249         <em>TestString</em> dans la
250         directive <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>
251         permet au moteur de réécriture du module
252         <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> de prendre des
253         décisions conditionnées par des variables d'environnement.
254         Notez que les variables accessibles dans
255         <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> sans le préfixe
256         <code>ENV:</code> ne sont pas de véritables variables
257         d'environnement. Ce sont plutôt des variables spécifiques à
258         <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>
259         qui ne sont pas accessibles pour les autres modules.</p>
260     
261   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
262 <div class="section">
263 <h2><a name="special" id="special">Variables d'environnement à usage spécial</a></h2>
264     
265
266         <p>Des problèmes d'interopérabilité ont conduit à l'introduction de
267         mécanismes permettant de modifier le comportement d'Apache lorsqu'il
268         dialogue avec certains clients. Afin de rendre ces mécanismes aussi
269         souples que possible, ils sont invoqués en définissant des variables
270         d'environnement, en général à l'aide de la directive
271         <code class="directive"><a href="./mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, bien que les
272         directives <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code> et
273         <code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code> puissent aussi être
274         utilisées, par exemple.</p>
275
276     <h3><a name="downgrade" id="downgrade">downgrade-1.0</a></h3>
277         
278
279         <p>Ceci force le traitement d'une requête comme une requête HTTP/1.0
280         même si elle a été rédigée dans un langage plus récent.</p>
281
282     
283     <h3><a name="force-gzip" id="force-gzip">force-gzip</a></h3>
284         
285           <p>Si le filtre <code>DEFLATE</code> est activé, cette variable
286           d'environnement ignorera les réglages accept-encoding de votre
287           navigateur et enverra une sortie compressée inconditionnellement.</p>
288     
289     <h3><a name="force-no-vary" id="force-no-vary">force-no-vary</a></h3>
290         
291
292         <p>Cette variable entraîne la suppression de tout champ
293         <code>Vary</code> des en-têtes de la réponse avant que cette dernière
294         soit renvoyée au client. Certains clients n'interprètent pas ce champ
295         correctement, et la définition de cette variable permet de contourner
296         ce problème, mais implique aussi la définition de
297         <strong>force-response-1.0</strong>.</p>
298
299     
300     <h3><a name="force-response" id="force-response">force-response-1.0</a></h3>
301         
302
303       <p>Cette variable force une réponse en langage HTTP/1.0 aux clients
304       qui envoient des requêtes dans le même langage. Elle fut implémentée à
305       l'origine suite à des problèmes avec les mandataires d'AOL. Certains
306       clients en langage HTTP/1.0 ne réagissent pas correctement face à une
307       réponse en langage HTTP/1.1, et cette variable peut être utilisée pour
308       assurer l'interopérabilité avec eux.</p>
309
310     
311
312     <h3><a name="gzip-only-text-html" id="gzip-only-text-html">gzip-only-text/html</a></h3>
313         
314
315         <p>Positionnée à "1", cette variable désactive le filtre en sortie
316         <code>DEFLATE</code> fourni par le module <code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> pour les
317         types de contenu autres que <code>text/html</code>. Si vous préférez
318         utiliser des fichiers compressés statiquement,
319         <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> évalue aussi la variable (non
320         seulement pour gzip, mais aussi pour tous les encodages autres que
321         "identity").</p>
322     
323
324     <h3><a name="no-gzip" id="no-gzip">no-gzip</a></h3>
325
326         <p>Quand cette variable est définie, le filtre <code>DEFLATE</code> du
327         module <code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code> est désactivé, et
328         <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> refusera de délivrer des ressources
329         encodées.</p>
330
331     
332
333     <h3><a name="no-cache" id="no-cache">no-cache</a></h3>
334         <p><em>Disponible dans les versions 2.2.12 et ultérieures d'Apache</em></p>
335
336         <p>Lorsque cette variable est définie,
337         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne sauvegardera pas de réponse
338         susceptible d'être mise en cache. Cette variable d'environnement
339         n'a aucune incidence sur le fait qu'une réponse déjà enregistrée
340         dans la cache soit utilisée ou non pour la requête courante.</p>
341
342     
343
344     <h3><a name="nokeepalive" id="nokeepalive">nokeepalive</a></h3>
345         
346
347         <p>Quand cette variable est définie, la directive
348         <code class="directive"><a href="./mod/core.html#keepalive">KeepAlive</a></code> est désactivée.</p>
349
350     
351
352     <h3><a name="prefer-language" id="prefer-language">prefer-language</a></h3>
353
354         <p>Cette variable modifie le comportement du module
355         <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>. Si elle contient un symbole de
356         langage (tel que <code>en</code>, <code>ja</code>
357         ou <code>x-klingon</code>), <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> essaie de
358         délivrer une variante dans ce langage. S'il n'existe pas de telle
359         variante, le processus normal de
360         <a href="content-negotiation.html">négociation</a> s'applique.</p>
361
362     
363
364     <h3><a name="redirect-carefully" id="redirect-carefully">redirect-carefully</a></h3>
365         
366
367         <p>Cette variable force le serveur à être plus prudent lors de l'envoi
368         d'une redirection au client. Elle est en général utilisée quand un
369         client présente un problème connu avec les redirections. Elle fut
370         implémentée à l'origine suite a un problème rencontré avec le logiciel
371         WebFolders de Microsoft qui ne gère pas correctement les redirections
372         vers des ressources de type répertoire via des méthodes DAV.</p>
373
374     
375
376    <h3><a name="suppress-error-charset" id="suppress-error-charset">suppress-error-charset</a></h3>
377        
378
379     <p><em>Disponible dans les versions postérieures à 2.0.54</em></p>
380
381     <p>Quand Apache génère une redirection en réponse à une requête client,
382     la réponse inclut un texte destiné à être affiché au cas où le client ne
383     suivrait pas, ou ne pourrait pas suivre automatiquement la redirection.
384     Habituellement, Apache marque ce texte en accord avec le jeu de caractères
385     qu'il utilise, à savoir ISO-8859-1.</p>
386     <p> Cependant, si la redirection fait référence à une page qui utilise un
387     jeu de caractères différent, certaines versions de navigateurs obsolètes
388     essaieront d'utiliser le jeu de caractères du texte de la redirection
389     plutôt que celui de la page réelle.
390     Ceci peut entraîner, par exemple, un rendu incorrect du Grec.</p>
391     <p>Si cette variable d'environnement est définie, Apache omettra le jeu de
392     caractères pour le texte de la redirection, et les navigateurs obsolètes
393     précités utiliseront correctement celui de la page de destination.</p>
394
395     <div class="warning">
396       <h3>Note concernant la sécurité</h3>
397
398       <p>L'envoi de pages d'erreur sans spécifier un jeu de caractères peut
399       conduire à des attaques de type "cross-site-scripting" pour les
400       navigateurs qui ne respectent pas la spécification HTTP/1.1 (MSIE) et
401       tentent de déduire le jeu de caractères à partir du contenu. De tels
402       navigateurs peuvent être facilement trompés et utiliser le jeu de
403       caractères UTF-7 ; les contenus des données en entrée de type UTF-7
404       (comme les URI de requête) ne seront alors plus protégés par les
405       mécanismes d'échappement usuels conçus pour prévenir les attaques
406       de type "cross-site-scripting".</p>
407     </div>
408
409    
410
411    <h3><a name="proxy" id="proxy">force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked,
412    proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled</a></h3>
413
414    <p>Ces directives modifient le comportement protocolaire du module
415    <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.  Voir la documentation sur
416    <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> et <code class="module"><a href="./mod/mod_proxy_http.html">mod_proxy_http</a></code> pour plus de détails.</p>
417    
418
419   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
420 <div class="section">
421 <h2><a name="examples" id="examples">Exemples</a></h2>
422     
423
424     <h3><a name="fixheader" id="fixheader">Transmission du contenu d'en-têtes non valides aux scripts
425       CGI</a></h3>
426       
427
428       <p>Avec la version 2.4, Apache est plus strict avec la conversion
429       des en-têtes HTTP en variables d'environnement dans
430       <code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code> et d'autres modules : dans les versions
431       précédentes, tout caractère invalide dans les noms d'en-têtes
432       était tout simplement remplacé par un caractère '_', ce qui
433       pouvait exposer à des attaques de type cross-site-scripting via
434       injection d'en-têtes (voir <a href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues
435       du Web inhabituelles</a>, planche 19/20).</p>
436
437       <p>Si vous devez supporter un client qui envoie des en-têtes non
438       conformes et si ceux-ci ne peuvent pas être corrigés, il existe
439       une solution de contournement simple mettant en jeu les modules
440       <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> et <code class="module"><a href="./mod/mod_header.html">mod_header</a></code>,
441       et permettant de prendre en compte ces en-têtes :</p>
442
443 <pre class="prettyprint lang-config">
444 # L'exemple suivant montre comment prendre en compte un en-tête<br />
445 # Accept_Encoding non conforme envoyé par un client.
446 #
447 SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
448 RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
449 </pre>
450
451
452     
453
454     <h3><a name="misbehaving" id="misbehaving">Modification du comportement protocolaire face à des clients
455         réagissant de manière non conforme</a></h3>
456         
457
458         <p>Les versions antérieures recommandaient l'ajout de ces lignes dans
459         httpd.conf pour tenir compte de problèmes connus avec certains clients.
460         Comme les clients concernés sont maintenant très peu utilisés, cet
461         ajout n'est pratiquement plus nécessaire.</p>
462 <pre class="prettyprint lang-config">
463 #
464 # The following directives modify normal HTTP response behavior.
465 # The first directive disables keepalive for Netscape 2.x and browsers that
466 # spoof it. There are known problems with these browser implementations.
467 # The second directive is for Microsoft Internet Explorer 4.0b2
468 # which has a broken HTTP/1.1 implementation and does not properly
469 # support keepalive when it is used on 301 or 302 (redirect) responses.
470 #
471 BrowserMatch "Mozilla/2" nokeepalive
472 BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
473
474 #
475 # The following directive disables HTTP/1.1 responses to browsers which
476 # are in violation of the HTTP/1.0 spec by not being able to grok a
477 # basic 1.1 response.
478 #
479 BrowserMatch "RealPlayer 4\.0" force-response-1.0
480 BrowserMatch "Java/1\.0" force-response-1.0
481 BrowserMatch "JDK/1\.0" force-response-1.0
482 </pre>
483
484
485     
486     <h3><a name="no-img-log" id="no-img-log">Ne pas tracer les requêtes pour des images dans le fichier de
487         trace des accès</a></h3>
488         
489
490         <p>Dans cet exemple, les requêtes pour des images n'apparaissent pas
491         dans le fichier de trace des accès. Il peut être facilement adapté pour
492         empêcher le traçage de répertoires particuliers, ou de requêtes
493         en provenance de certains hôtes.</p>
494          <pre class="prettyprint lang-config">
495 SetEnvIf Request_URI \.gif image-request
496 SetEnvIf Request_URI \.jpg image-request
497 SetEnvIf Request_URI \.png image-request
498 CustomLog logs/access_log common env=!image-request
499         </pre>
500
501
502     
503     <h3><a name="image-theft" id="image-theft">Prévention du "Vol d'image"</a></h3>
504         
505
506         <p>Cet exemple montre comment empêcher les utilisateurs ne faisant pas
507         partie de votre serveur d'utiliser des images de votre serveur comme
508         images en ligne dans leurs pages. Cette configuration n'est pas
509         recommandée, mais elle peut fonctionner dans des circonstances bien
510         définies. Nous supposons que toutes vos images sont enregistrées dans
511         un répertoire nommé <code>/web/images</code>.</p>
512         <pre class="prettyprint lang-config">
513 SetEnvIf Referer "^http://www\.example\.com/" local_referal
514 # Autorise les navigateurs qui n'envoient aucune information de Referer
515 SetEnvIf Referer "^$" local_referal
516 &lt;Directory /web/images&gt;
517     Order Deny,Allow
518     Deny from all
519     Allow from env=local_referal
520 &lt;/Directory&gt;
521         </pre>
522
523
524         <p>Pour plus d'informations sur cette technique, voir le tutoriel sur
525         ServerWatch
526         "<a href="http://www.serverwatch.com/tutorials/article.php/1132731">Keeping Your Images from Adorning Other Sites</a>".</p>
527     
528   </div></div>
529 <div class="bottomlang">
530 <p><span>Langues Disponibles: </span><a href="./en/env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
531 <a href="./fr/env.html" title="Français">&nbsp;fr&nbsp;</a> |
532 <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
533 <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
534 <a href="./tr/env.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
535 </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&amp;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>
536 <script type="text/javascript"><!--//--><![CDATA[//><!--
537 var comments_shortname = 'httpd';
538 var comments_identifier = 'http://httpd.apache.org/docs/trunk/env.html';
539 (function(w, d) {
540     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
541         d.write('<div id="comments_thread"><\/div>');
542         var s = d.createElement('script');
543         s.type = 'text/javascript';
544         s.async = true;
545         s.src = 'https://c.apaste.info/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
546         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
547     }
548     else {
549         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
550     }
551 })(window, document);
552 //--><!]]></script></div><div id="footer">
553 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
554 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.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[//><!--
555 if (typeof(prettyPrint) !== 'undefined') {
556     prettyPrint();
557 }
558 //--><!]]></script>
559 </body></html>