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