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