]> granicus.if.org Git - apache/blob - docs/manual/sections.xml.fr
XML update.
[apache] / docs / manual / sections.xml.fr
1 <?xml version="1.0" encoding="ISO-8859-1" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- French translation : Lucien GENTIS -->
5 <!-- Reviewed by : Vincent Deffontaines -->
6 <!-- English Revision : 1636195 -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <manualpage metafile="sections.xml.meta">
26
27 <title>Sections de configuration</title>
28
29 <summary> <p>Les directives des <a
30 href="configuring.html">fichiers de configuration</a> peuvent s'appliquer
31 au serveur dans son ensemble, ou seulement &agrave; des r&eacute;pertoires, fichiers, h&ocirc;tes,
32 ou URLs particuliers.  Ce document d&eacute;crit comment utiliser les conteneurs de
33 sections de configuration ou les fichiers <code>.htaccess</code> pour
34 modifier la port&eacute;e des directives de configuration.</p>
35 </summary>
36
37 <section id="types"><title>Types de conteneurs de sections de
38 configuration</title>
39
40 <related>
41 <modulelist>
42 <module>core</module>
43 <module>mod_version</module>
44 <module>mod_proxy</module>
45 </modulelist>
46 <directivelist>
47 <directive type="section" module="core">Directory</directive>
48 <directive type="section" module="core">DirectoryMatch</directive>
49 <directive type="section" module="core">Files</directive>
50 <directive type="section" module="core">FilesMatch</directive>
51 <directive type="section" module="core">If</directive>
52 <directive type="section" module="core">IfDefine</directive>
53 <directive type="section" module="core">IfModule</directive>
54 <directive type="section" module="mod_version">IfVersion</directive>
55 <directive type="section" module="core">Location</directive>
56 <directive type="section" module="core">LocationMatch</directive>
57 <directive type="section" module="mod_proxy">Proxy</directive>
58 <directive type="section" module="mod_proxy">ProxyMatch</directive>
59 <directive type="section" module="core">VirtualHost</directive>
60 </directivelist>
61 </related>
62
63 <p>Il existe deux grands types de conteneurs.  La plupart des conteneurs sont
64 &eacute;valu&eacute;s pour chaque requ&ecirc;te.  Les directives qu'ils contiennent s'appliquent
65 seulement aux requ&ecirc;tes qui sont concern&eacute;es par le conteneur.  En revanche,
66 les conteneurs
67 <directive type="section" module="core">IfDefine</directive>, <directive
68 type="section" module="core">IfModule</directive>, et
69 <directive type="section" module="mod_version">IfVersion</directive> sont
70 &eacute;valu&eacute;s seulement au d&eacute;marrage et au red&eacute;marrage du serveur.
71 Si leurs conditions sont v&eacute;rifi&eacute;es au d&eacute;marrage, les directives qu'ils contiennent
72 s'appliqueront &agrave; toutes les requ&ecirc;tes.  Si leurs conditions ne sont pas v&eacute;rifi&eacute;es, les
73 directives qu'ils contiennent seront ignor&eacute;es.</p>
74
75 <p>Le conteneur <directive type="section" module="core">IfDefine</directive>
76 contient des directives qui ne seront appliqu&eacute;es que si un param&egrave;tre
77 appropri&eacute; a &eacute;t&eacute; d&eacute;fini dans la ligne de commande de <program>httpd</program>.
78 Par exemple,
79 avec la configuration suivante, toutes les requ&ecirc;tes seront redirig&eacute;es vers
80 un autre site si le serveur est d&eacute;marr&eacute; en utilisant la ligne de commande :
81 <code>httpd -DClosedForNow</code>:</p>
82
83 <highlight language="config">
84 &lt;IfDefine ClosedForNow&gt;
85     Redirect / http://otherserver.example.com/
86 &lt;/IfDefine&gt;
87 </highlight>
88
89 <p>Le conteneur <directive type="section" module="core">IfModule</directive>
90 est similaire; les directives qu'il contient ne s'appliqueront que si
91 un module particulier est disponible au niveau du serveur.
92 Le module doit &ecirc;tre soit compil&eacute; statiquement dans le serveur, soit
93 dynamiquement et dans ce cas, la ligne <directive
94 module="mod_so">LoadModule</directive> correspondante doit appara&icirc;tre
95 plus haut dans le fichier de configuration.  Ce conteneur ne doit &ecirc;tre
96 utilis&eacute; que dans le cas o&ugrave; votre fichier de configuration doit fonctionner
97 ind&eacute;pendamment de la pr&eacute;sence ou de l'absence de certains modules.
98 Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer
99 syst&eacute;matiquement, car vous pouvez perdre ainsi de pr&eacute;cieux messages d'erreur
100 &agrave; propos de modules manquants.</p>
101
102 <p>Dans l'exemple suivant, la directive <directive
103 module="mod_mime_magic">MimeMagicFile</directive> ne s'appliquera que si le
104 module <module>mod_mime_magic</module> est disponible.</p>
105
106 <highlight language="config">
107 &lt;IfModule mod_mime_magic.c&gt;
108     MimeMagicFile conf/magic
109 &lt;/IfModule&gt;
110 </highlight>
111
112 <p>Le conteneur
113 <directive type="section" module="mod_version">IfVersion</directive>
114 est similaire aux conteneurs <directive type="section"
115 module="core">IfDefine</directive> et <directive type="section"
116 module="core">IfModule</directive>; les directives qu'il contient ne
117 s'appliqueront que si une version particuli&egrave;re du serveur s'ex&eacute;cute.  Ce
118 conteneur a &eacute;t&eacute; con&ccedil;u pour une utilisation dans les suites de tests
119 et les grands r&eacute;seaux qui doivent prendre en compte diff&eacute;rentes versions
120 et configurations de httpd.</p>
121
122 <highlight language="config">
123 &lt;IfVersion >= 2.4&gt;
124     # les directives situ&eacute;es ici ne s'appliquent que si la version <br />
125     # est sup&eacute;rieure ou &eacute;gale &agrave; 2.4.0.
126 &lt;/IfVersion&gt;
127 </highlight>
128
129 <p><directive type="section" module="core">IfDefine</directive>,
130 <directive type="section" module="core">IfModule</directive>, et
131 <directive type="section" module="mod_version">IfVersion</directive>
132 peuvent inverser leur test conditionnel en le faisant pr&eacute;c&eacute;der d'un "!".
133 De plus, ces sections peuvent &ecirc;tre imbriqu&eacute;es afin de d&eacute;finir des restrictions
134 plus complexes.</p>
135 </section>
136
137 <section id="file-and-web"><title>Syst&egrave;me de fichiers,
138 arborescence du site web et expressions bool&eacute;ennes</title>
139
140 <p>Les conteneurs de sections de configuration les plus couramment utilis&eacute;s
141 sont ceux qui modifient la configuration de points particuliers du syst&egrave;me de
142 fichiers ou de l'arborescence du site web.  Tout d'abord, il est important de
143 comprendre la diff&eacute;rence entre les deux.  Le syst&egrave;me de fichiers est une vue
144 de vos disques tels qu'ils sont per&ccedil;us par votre syst&egrave;me d'exploitation.
145 Par exemple, avec une installation par d&eacute;faut,
146 Apache httpd est situ&eacute; dans <code>/usr/local/apache2</code> pour le syst&egrave;me de
147 fichiers UNIX, ou <code>"c:/Program Files/Apache Group/Apache2"</code> pour
148 le syst&egrave;me de fichiers Windows.  (Notez que des slashes directs doivent
149 toujours &ecirc;tre utilis&eacute;s comme s&eacute;parateur de chemin
150 dans les fichiers de configuration d'Apache httpd, m&ecirc;me sous
151 Windows.)  Quant &agrave;
152 l'arborescence du site web, il s'agit d'une vue de votre site
153 tel que pr&eacute;sent&eacute; par le
154 serveur web et per&ccedil;ue par le client.  Ainsi le chemin <code>/dir/</code> dans
155 l'arborescence du site web correspond au chemin
156 <code>/usr/local/apache2/htdocs/dir/</code> dans le syst&egrave;me de fichiers pour
157 une installation d'Apache httpd par d&eacute;faut sous UNIX.
158 En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au
159 syst&egrave;me de fichiers, car les pages web peuvent &ecirc;tre g&eacute;n&eacute;r&eacute;es dynamiquement
160 &agrave; partir de bases de donn&eacute;es ou d'autres emplacements.</p>
161
162 <section id="filesystem"><title>Conteneurs de syst&egrave;me de fichiers</title>
163
164 <p>Les conteneurs <directive type="section" module="core">Directory</directive>
165 et <directive type="section" module="core">Files</directive>,
166 ainsi que leurs &eacute;quivalents acceptant les
167 <glossary ref="regex">expressions rationnelles</glossary>,
168 appliquent des directives &agrave; certaines parties du syst&egrave;me de fichiers.
169 Les directives contenues dans une section <directive
170 type="section" module="core">Directory</directive> s'appliquent au r&eacute;pertoire
171 pr&eacute;cis&eacute;, ainsi qu'&agrave; tous ses sous-r&eacute;pertoires et aux fichiers que ces
172 derniers contiennent.
173 Le m&ecirc;me effet peut &ecirc;tre obtenu en utilisant les <a
174 href="howto/htaccess.html">fichiers .htaccess</a>.  Par exemple, avec la
175 configuration suivante, l'indexation sera activ&eacute;e pour le r&eacute;pertoire
176 <code>/var/web/dir1</code> et tous ses sous-r&eacute;pertoires.</p>
177
178 <highlight language="config">
179 &lt;Directory /var/web/dir1&gt;
180     Options +Indexes
181 &lt;/Directory&gt;
182 </highlight>
183
184 <p>Les directives contenues dans une section <directive type="section"
185 module="core">Files</directive> s'appliquent &agrave; tout fichier
186 avec le nom sp&eacute;cifi&eacute;, quel que soit le r&eacute;pertoire dans lequel il se trouve.
187 Ainsi par exemple, les directives de configuration suivantes, si elles sont
188 plac&eacute;es dans la section principale du fichier de configuration, vont interdire
189 l'acc&egrave;s &agrave; tout fichier nomm&eacute; <code>private.html</code> quel que soit
190 l'endroit o&ugrave; il se trouve.</p>
191
192 <highlight language="config">
193 &lt;Files private.html&gt;
194     Require all denied
195 &lt;/Files&gt;
196 </highlight>
197
198 <p>Pour faire r&eacute;f&eacute;rence &agrave; des fichiers qui se trouvent en des points
199 particuliers du syst&egrave;me de fichiers, les sections
200 <directive type="section" module="core">Files</directive> et
201 <directive type="section" module="core">Directory</directive>
202 peuvent &ecirc;tre combin&eacute;es.  Par exemple, la configuration suivante va interdire
203 l'acc&egrave;s &agrave; <code>/var/web/dir1/private.html</code>,
204 <code>/var/web/dir1/subdir2/private.html</code>,
205 <code>/var/web/dir1/subdir3/private.html</code>, ainsi que toute instance de
206 <code>private.html</code> qui se trouve dans l'arborescence
207 <code>/var/web/dir1/</code>.</p>
208
209 <highlight language="config">
210 &lt;Directory /var/web/dir1&gt;
211     &lt;Files private.html&gt;
212         Require all denied
213     &lt;/Files&gt;
214 &lt;/Directory&gt;
215 </highlight>
216 </section>
217
218 <section id="webspace"><title>Conteneurs de l'arborescence du site web</title>
219
220 <p>le conteneur <directive type="section" module="core">Location</directive>
221 et son &eacute;quivalent acceptant les
222 <glossary ref="regex">expressions rationnelles</glossary>, modifient quant &agrave; eux la
223 configuration de parties de l'arborescence du site web.  Par exemple, la
224 configuration suivante interdit l'acc&egrave;s &agrave; toute URL dont la partie chemin
225 commence par /private.
226 En particulier, l'interdiction s'appliquera aux requ&ecirc;tes pour :
227 <code>http://yoursite.example.com/private</code>,
228 <code>http://yoursite.example.com/private123</code>, et
229 <code>http://yoursite.example.com/private/dir/file.html</code> ainsi qu'&agrave;
230 toute requ&ecirc;te commen&ccedil;ant par la cha&icirc;ne de caract&egrave;res <code>/private</code>.</p>
231
232 <highlight language="config">
233 &lt;LocationMatch ^/private&gt;
234     Require all denied
235 &lt;/LocationMatch&gt;
236 </highlight>
237
238 <p>Le conteneur <directive type="section" module="core">Location</directive>
239 n'a pas besoin de faire r&eacute;f&eacute;rence &agrave; un &eacute;l&eacute;ment du syst&egrave;me de fichiers.
240 Par exemple, l'exemple suivant montre comment faire r&eacute;f&eacute;rence &agrave; une URL
241 particuli&egrave;re vers un gestionnaire interne du serveur HTTP Apache fourni par le module
242 <module>mod_status</module>.
243 Il n'est pas n&eacute;cessaire de trouver un fichier nomm&eacute; <code>server-status</code>
244 dans le syst&egrave;me de fichiers.</p>
245
246 <highlight language="config">
247 &lt;Location /server-status&gt;
248     SetHandler server-status
249 &lt;/Location&gt;
250 </highlight>
251 </section>
252
253 <section id="overlapping-webspace"><title>Espace web imbriqu&eacute;</title>
254 <p>Pour contr&ocirc;ler deux URLs imbriqu&eacute;es, on doit tenir compte de l'ordre
255 dans lequel certaines sections ou directives sont &eacute;valu&eacute;es. Pour
256 <directive type="section" module="core">Location</directive>, on doit
257 avoir :</p>
258 <highlight language="config">
259 &lt;Location /foo&gt;
260 &lt;/Location&gt;
261 &lt;Location /foo/bar&gt;
262 &lt;/Location>
263 </highlight>
264 <p>Les directives <directive type="section"
265 module="mod_alias">Alias</directive>, quant &agrave; elles, sont &eacute;valu&eacute;es vice-versa :</p>
266 <highlight language="config">
267 Alias /foo/bar /srv/www/uncommon/bar
268 Alias /foo /srv/www/common/foo
269 </highlight>
270 <p>Ceci est aussi vrai pour les directives <directive
271 module="mod_proxy">ProxyPass</directive> :</p>
272 <highlight language="config">
273 ProxyPass /special-area http://special.example.com smax=5 max=10
274 ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
275 </highlight>
276 </section>
277
278
279 <section id="wildcards"><title>Caract&egrave;res de remplacement
280 et expressions rationnelles</title>
281
282 <p>Les conteneurs
283 <directive type="section" module="core">Directory</directive>,
284 <directive type="section" module="core">Files</directive>, et
285 <directive type="section" module="core">Location</directive>
286 peuvent utiliser des caract&egrave;res de remplacement de style shell comme dans
287 la fonction <code>fnmatch</code> de la biblioth&egrave;que C standard.
288 Le caract&egrave;re "*"
289 correspond &agrave; toute s&eacute;quence de caract&egrave;res, "?" &agrave; un caract&egrave;re seul,
290 et "[<em>seq</em>]" &agrave; tout caract&egrave;re contenu dans <em>seq</em>.
291 Le caract&egrave;re "/"
292 ne peut pas faire l'objet d'un remplacement;
293 il doit &ecirc;tre sp&eacute;cifi&eacute; explicitement.</p>
294
295 <p>Si une d&eacute;finition des crit&egrave;res de correspondance
296 encore plus souple est n&eacute;cessaire, chaque conteneur
297 poss&egrave;de son &eacute;quivalent acceptant les expressions rationnelles : <directive
298 type="section" module="core">DirectoryMatch</directive>, <directive
299 type="section" module="core">FilesMatch</directive>, et <directive
300 type="section" module="core">LocationMatch</directive> acceptent les
301 <glossary ref="regex">expressions rationnelles</glossary> compatibles Perl
302 pour d&eacute;finir les crit&egrave;res de correspondance.  Mais voyez plus loin la section
303 &agrave; propos de la combinaison des sections de configuration
304 pour comprendre comment l'utilisation de
305 conteneurs avec des expressions rationnelles va modifier la mani&egrave;re
306 dont les directives sont appliqu&eacute;es.</p>
307
308 <p>Un conteneur qui modifie la configuration de tous les
309 r&eacute;pertoires utilisateurs &agrave; l'aide de caract&egrave;res de remplacement
310 mais sans utiliser
311 les expressions rationnelles pourrait ressembler &agrave; ceci :</p>
312
313 <highlight language="config">
314 &lt;Directory /home/*/public_html&gt;
315     Options Indexes
316 &lt;/Directory&gt;
317 </highlight>
318
319 <p>Avec les conteneurs utilisant les expressions rationnelles,
320 on peut interdire l'acc&egrave;s &agrave; de nombreux types de fichiers d'images
321 simultan&eacute;ment :</p>
322 <highlight language="config">
323 +&lt;FilesMatch \.(?i:gif|jpe?g|png)$&gt;
324     Require all denied
325 &lt;/FilesMatch&gt;
326 </highlight>
327
328 <p>Les expressions rationnelles contenant des <strong>groupes nomm&eacute;s et
329 des r&eacute;f&eacute;rences arri&egrave;res</strong> sont ajout&eacute;es &agrave; l'environnement avec
330 leur nom en majuscules. Ceci permet de r&eacute;f&eacute;rencer des &eacute;l&eacute;ments de
331 chemins de fichiers et d'URLs depuis une <a
332 href="expr.html">expression</a> et au sein de modules comme
333 <module>mod_rewrite</module>.</p>
334
335 <highlight language="config">
336 &lt;DirectoryMatch ^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)&gt;
337     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
338 &lt;/DirectoryMatch&gt;
339 </highlight>
340
341 </section>
342
343 <section id="expressions"><title>Expressions bool&eacute;ennes</title>
344 <p>La directive <directive type="section" module="core">If</directive>
345 permet de modifier la configuration en fonction d'une condition qui peut
346 &ecirc;tre d&eacute;finie sous la forme d'une expression bool&eacute;enne. Dans l'exemple
347 suivant, l'acc&egrave;s est interdit si l'en-t&ecirc;te HTTP Referer ne commence pas
348 par "http://www.example.com/".</p>
349 <highlight language="config">
350 &lt;If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"&gt;
351     Require all denied
352 &lt;/If&gt;
353 </highlight>
354
355 </section>
356
357 <section id="whichwhen"><title>Que faut-il utiliser et quand ?</title>
358
359 <p>Choisir entre des conteneurs de syst&egrave;me de fichiers et des conteneurs
360 d'arborescence du site web est vraiment tr&egrave;s simple.
361 Pour appliquer des directives &agrave; des objets qui r&eacute;sident dans le syst&egrave;me de
362 fichiers, utilisez toujours un conteneur <directive type="section"
363 module="core">Directory</directive> ou <directive type="section"
364 module="core">Files</directive>.  Pour appliquer des directives &agrave; des objets
365 qui ne r&eacute;sident pas dans le syst&egrave;me de fichiers (comme une page web g&eacute;n&eacute;r&eacute;e
366 par une base de donn&eacute;es), utilisez un conteneur <directive type="section"
367 module="core">Location</directive>.</p>
368
369 <p>Il ne faut jamais utiliser un conteneur <directive type="section"
370 module="core">Location</directive> pour restreindre l'acc&egrave;s &agrave; des
371 objets du syst&egrave;me de fichiers, car plusieurs localisations de
372 l'arborescence du site web (URLs) peuvent correspondre &agrave; la m&ecirc;me localisation
373 du syst&egrave;me de fichier, ce qui peut permettre de contourner vos restrictions.
374 Par exemple, imaginez la configuration suivante :</p>
375
376 <highlight language="config">
377 &lt;Location /dir/&gt;
378     Require all denied
379 &lt;/Location&gt;
380 </highlight>
381
382 <p>Elle fonctionne correctement si la requ&ecirc;te appelle
383 <code>http://yoursite.example.com/dir/</code>.  Mais que va-t-il se passer si
384 votre syst&egrave;me de fichiers est insensible &agrave; la casse ?
385 Votre restriction va pouvoir &ecirc;tre tout simplement contourn&eacute;e en envoyant une
386 requ&ecirc;te sur
387 <code>http://yoursite.example.com/DIR/</code>.  Le conteneur <directive
388 type="section" module="core">Directory</directive>, quant &agrave; lui, s'appliquera
389 &agrave; tout contenu servi &agrave; partir de cette localisation,
390 sans tenir compte de la mani&egrave;re dont il est appel&eacute;.
391 (Les liens du syst&egrave;me de fichiers constituent une exception.
392 Le m&ecirc;me r&eacute;pertoire peut &ecirc;tre plac&eacute; dans plusieurs parties du syst&egrave;me de
393 fichiers en utilisant des liens symboliques.  Le conteneur
394 <directive type="section" module="core">Directory</directive> va suivre le
395 lien symbolique sans modifier le nom du chemin.  Par cons&eacute;quent, pour plus de
396 s&eacute;curit&eacute;, les liens symboliques doivent &ecirc;tre d&eacute;sactiv&eacute;s &agrave; l'aide de la
397 directive
398 <directive module="core">Options</directive> appropri&eacute;e.)</p>
399
400 <p>Si vous pensez que vous n'&ecirc;tes pas concern&eacute; par ce probl&egrave;me
401 parceque vous utilisez un syst&egrave;me de fichiers sensible &agrave; la casse,
402 gardez &agrave; l'esprit qu'il y a de nombreuses autres mani&egrave;res pour faire
403 correspondre plusieurs localisations de l'arborescence du site web &agrave; la m&ecirc;me
404 localisation du syst&egrave;me de fichiers.  C'est pourquoi vous devez autant que
405 possible toujours utiliser les conteneurs de syst&egrave;me de fichiers.
406 Il y a cependant une exception &agrave; cette r&egrave;gle.  Placer des restrictions de
407 configuration dans un conteneur <code>&lt;Location
408 /&gt;</code> est tout &agrave; fait sans rique car ce conteneur va s'appliquer &agrave;
409 toutes les requ&ecirc;tes sans tenir compte de l'URL sp&eacute;cifique.</p>
410 </section>
411
412 <section id="nesting"><title>Imbrication des sections</title>
413
414 <p>Certains types de sections peuvent &ecirc;tre imbriqu&eacute;s : d'une part, on
415 peut utiliser les sections <directive type="section"
416 module="core">Files</directive> &agrave; l'int&eacute;rieur des sections <directive
417 type="section" module="core">Directory</directive>, d'autre part, on
418 peut utiliser les
419 directives <directive type="section" module="core">If</directive> &agrave;
420 l'int&eacute;rieur des sections <directive type="section"
421 module="core">Directory</directive>, <directive type="section"
422 module="core">Location</directive> et <directive type="section"
423 module="core">Files</directive>. Les valeurs des expressions
424 rationnelles correspondant aux sections nomm&eacute;es se comportent de mani&egrave;re
425 identique.</p>
426
427 <p>Les sections imbriqu&eacute;es sont fusionn&eacute;es apr&egrave;s les sections
428 non-imbriqu&eacute;es de m&ecirc;me type.</p>
429
430 </section>
431
432 </section>
433
434 <section id="virtualhost"><title>H&ocirc;tes virtuels</title>
435
436 <p>Le conteneur <directive type="section" module="core">VirtualHost</directive>
437 contient des directives qui s'appliquent &agrave; des h&ocirc;tes sp&eacute;cifiques.
438 Ceci s'av&egrave;re utile pour servir des h&ocirc;tes multiples &agrave; partir de la m&ecirc;me machine,
439 chacun d'entre eux poss&eacute;dant une configuration diff&eacute;rente.  Pour de plus amples
440 informations,
441 voir la <a href="vhosts/">Documentation sur les h&ocirc;tes virtuels</a>.</p>
442 </section>
443
444 <section id="proxy"><title>Mandataire</title>
445
446 <p>Les conteneurs
447 <directive type="section" module="mod_proxy">Proxy</directive>
448 et <directive type="section" module="mod_proxy">ProxyMatch</directive>
449 appliquent les directives de configuration qu'ils contiennent uniquement aux
450 sites qui correspondent &agrave; l'URL sp&eacute;cifi&eacute;e et auxquels on a
451 acc&eacute;d&eacute; via le serveur mandataire du module <module>mod_proxy</module>.
452 Par exemple, la configuration suivante
453 va interdire l'utilisation du serveur proxy pour acc&eacute;der au site
454 <code>www.example.com</code>.</p>
455
456 <highlight language="config">
457 &lt;Proxy http://www.example.com/*&gt;
458     Require all granted
459 &lt;/Proxy&gt;
460 </highlight>
461 </section>
462
463 <section id="whatwhere"><title>Quelles sont les directives autoris&eacute;es ?</title>
464
465 <p>Pour d&eacute;terminer quelles sont les directives autoris&eacute;es pour tel type de
466 section de configuration, v&eacute;rifiez le <a
467 href="mod/directive-dict.html#Context">Contexte</a> de la directive.
468 Tout ce qui est autoris&eacute; dans les sections
469 <directive type="section" module="core">Directory</directive>
470 l'est aussi d'un point de vue syntaxique dans les sections
471 <directive type="section" module="core">DirectoryMatch</directive>,
472 <directive type="section" module="core">Files</directive>,
473 <directive type="section" module="core">FilesMatch</directive>,
474 <directive type="section" module="core">Location</directive>,
475 <directive type="section" module="core">LocationMatch</directive>,
476 <directive type="section" module="mod_proxy">Proxy</directive>,
477 et <directive type="section" module="mod_proxy">ProxyMatch</directive>.
478 Il y a cependant quelques exceptions :</p>
479
480 <ul>
481 <li>La directive <directive module="core">AllowOverride</directive>
482 ne fonctionne que dans les sections
483 <directive type="section" module="core">Directory</directive>.</li>
484
485 <li>Les <directive
486 module="core">Options</directive> <code>FollowSymLinks</code> et
487 <code>SymLinksIfOwnerMatch</code>  ne fonctionnent que dans les sections
488 <directive type="section" module="core">Directory</directive> ou les fichiers
489 <code>.htaccess</code>.</li>
490
491 <li>La directive <directive module="core">Options</directive> ne peut pas &ecirc;tre
492 utilis&eacute;e dans les sections
493 <directive type="section" module="core">Files</directive>
494 et <directive type="section" module="core">FilesMatch</directive>.</li>
495 </ul>
496 </section>
497
498 <section id="merging"><title>Comment les sections sont combin&eacute;es entre elles</title>
499
500 <p>Les sections de configuration sont appliqu&eacute;es dans un ordre tr&egrave;s particulier.
501 Il est important de savoir comment cet ordre est d&eacute;fini car il peut avoir
502 des effets importants sur la mani&egrave;re dont les directives de configuration
503 sont interpr&eacute;t&eacute;es.</p>
504
505     <p>L'ordre dans lequel les sections sont combin&eacute;es est :</p>
506
507     <ol>
508       <li> Les sections <directive type="section"
509       module="core">Directory</directive> (&agrave; l'exception des
510       expressions rationnelles)
511       et les fichiers <code>.htaccess</code> sont appliqu&eacute;s simultan&eacute;ment (avec
512       la possibilit&eacute; pour <code>.htaccess</code>, s'il y est autoris&eacute;, de
513       pr&eacute;valoir sur
514       <directive type="section" module="core">Directory</directive>)</li>
515
516       <li>Les sections
517       <directive type="section" module="core">DirectoryMatch</directive>
518       (et <code>&lt;Directory ~&gt;</code>)</li>
519
520       <li>Les sections <directive type="section"
521       module="core">Files</directive> et <directive
522       type="section" module="core">FilesMatch</directive> sont appliqu&eacute;es
523       simultan&eacute;ment</li>
524
525       <li>Les sections
526       <directive type="section" module="core">Location</directive>
527       et <directive type="section"
528       module="core">LocationMatch</directive> sont appliqu&eacute;es
529       simultan&eacute;ment</li>
530
531       <li>Les directives <directive type="section" module="core">If</directive>
532       </li>
533     </ol>
534
535     <p>Mises &agrave; part les sections <directive type="section"
536     module="core">Directory</directive>, chaque groupe est trait&eacute; selon
537     l'ordre dans lequel il appara&icirc;t dans les fichiers de configuration.
538     Les sections <directive
539     type="section" module="core">Directory</directive> (groupe 1 ci-dessus)
540     sont trait&eacute;es dans l'ordre du r&eacute;pertoire le plus court vers le plus long.
541     Par exemple, <code>&lt;Directory /var/web/dir&gt;</code> sera
542     trait&eacute; avant <code>&lt;Directory
543     /var/web/dir/subdir&gt;</code>.  Si plusieurs sections <directive
544     type="section" module="core">Directory</directive> s'appliquent au m&ecirc;me
545     r&eacute;pertoire, elles sont trait&eacute;es selon l'ordre dans lequel elles
546     apparaissent dans le fichier de configuration.
547     Les sections de configuration incluses via la directive <directive
548     module="core">Include</directive> sont trait&eacute;es comme si elles se
549     trouvaient r&eacute;ellement dans le fichier qui les inclut &agrave; la position de la
550     directive
551     <directive module="core">Include</directive>.</p>
552
553     <p>Les sections situ&eacute;es &agrave; l'int&eacute;rieur de sections <directive type="section"
554     module="core">VirtualHost</directive>
555     sont appliqu&eacute;es <em>apr&egrave;s</em> les sections correspondantes situ&eacute;es en
556     dehors de la d&eacute;finition de l'h&ocirc;te virtuel, ce qui permet &agrave; l'h&ocirc;te virtuel
557     de pr&eacute;valoir sur la configuration du serveur principal.</p>
558
559     <p>Quand la requ&ecirc;te est servie par le module <module>mod_proxy</module>,
560     le conteneur <directive module="mod_proxy" type="section">Proxy</directive>
561     prend la place du conteneur <directive module="core"
562     type="section">Directory</directive> dans l'ordre de traitement.</p>
563
564     <p>Les sections situ&eacute;es plus loin dans le fichier de configuration pr&eacute;valent
565     sur celles qui les pr&eacute;c&egrave;dent ; cependant, chaque
566     module est responsable de la d&eacute;finition de la forme que doit prendre
567     cette pr&eacute;valence. Une section de configuration ult&eacute;rieure contenant
568     des directives d'un certain module peut &ecirc;tre &agrave; l'origine d'une
569     fusion conceptuelle de certaines directives, de toutes les
570     directives, ou un remplacement complet de la configuration du module
571     par ses valeurs par d&eacute;faut et les directives explicitement d&eacute;finies
572     dans cette section ult&eacute;rieure.</p>
573
574 <note><title>Note technique</title>
575         Une s&eacute;quence
576         <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
577         est r&eacute;ellement trait&eacute;e juste avant la phase de traduction du nom
578         (o&ugrave; <code>Aliases</code> et <code>DocumentRoots</code>
579       sont utilis&eacute;s pour faire correspondre les URLs aux noms de fichiers).
580       Les effets de cette s&eacute;quence disparaissent totalement lorsque
581       la traduction est termin&eacute;e.
582 </note>
583
584 <section id="merge-examples"><title>Quelques exemples</title>
585
586 <p>Voici un exemple imaginaire qui montre l'ordre de combinaison des sections.
587 En supposant qu'elles s'appliquent toutes &agrave; la requ&ecirc;te, les directives de
588 cet exemple seront appliqu&eacute;es dans l'ordre suivant : A &gt; B &gt; C &gt; D &gt;
589 E.</p>
590
591 <highlight language="config">
592 &lt;Location /&gt;
593     E
594 &lt;/Location&gt;
595
596 &lt;Files f.html&gt;
597     D
598 &lt;/Files&gt;
599
600 &lt;VirtualHost *&gt;
601 &lt;Directory /a/b&gt;
602     B
603 &lt;/Directory&gt;
604 &lt;/VirtualHost&gt;
605
606 &lt;DirectoryMatch "^.*b$"&gt;
607     C
608 &lt;/DirectoryMatch&gt;
609
610 &lt;Directory /a/b&gt;
611     A
612 &lt;/Directory&gt;
613
614 </highlight>
615
616 <p>Pour un exemple plus concret, consid&eacute;rez ce qui suit.  Sans tenir compte
617 de toute restriction d'acc&egrave;s plac&eacute;e dans les sections <directive module="core"
618 type="section">Directory</directive>, la section <directive
619 module="core" type="section">Location</directive> sera
620 &eacute;valu&eacute;e en dernier et permettra un acc&egrave;s au serveur sans aucune restriction.
621 En d'autres termes, l'ordre de la combinaison des sections est important,
622 soyez donc prudent !</p>
623
624 <highlight language="config">
625 &lt;Location /&gt;
626     Require all granted
627 &lt;/Location&gt;
628
629 # Arrghs!  Cette section &lt;Directory&gt; n'aura aucun effet
630 &lt;Directory /&gt;
631     &lt;RequireAll&gt;
632         Require all granted
633         Require not host badguy.example.com
634     &lt;/RequireAll&gt;
635 &lt;/Directory&gt;
636 </highlight>
637
638 </section>
639
640 </section>
641 </manualpage>