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