]> granicus.if.org Git - apache/blob - docs/manual/sections.xml.fr
Updates.
[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: 1040808 -->
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 <example>
84 &lt;IfDefine ClosedForNow&gt;<br />
85 Redirect / http://otherserver.example.com/<br />
86 &lt;/IfDefine&gt;
87 </example>
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">MimeMagicFiles</directive> ne s'appliquera que si le
104 module <module>mod_mime_magic</module> est disponible.</p>
105
106 <example>
107 &lt;IfModule mod_mime_magic.c&gt;<br />
108 MimeMagicFile conf/magic<br />
109 &lt;/IfModule&gt;
110 </example>
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 <example>
123   &lt;IfVersion >= 2.1&gt;<br />
124   <indent>
125     # les directives situ&eacute;es ici ne s'appliquent que si la version <br />
126     # est sup&eacute;rieure ou &eacute;gale &agrave; 2.1.0.<br />
127   </indent>
128   &lt;/IfVersion&gt;
129 </example>
130
131 <p><directive type="section" module="core">IfDefine</directive>,
132 <directive type="section" module="core">IfModule</directive>, et
133 <directive type="section" module="mod_version">IfVersion</directive>
134 peuvent inverser leur test conditionnel en le faisant pr&eacute;c&eacute;der d'un "!".
135 De plus, ces sections peuvent &ecirc;tre imbriqu&eacute;es afin de d&eacute;finir des restrictions
136 plus complexes.</p>
137 </section>
138
139 <section id="file-and-web"><title>Syst&egrave;me de fichiers et
140 arborescence du site web</title>
141
142 <p>Les conteneurs de sections de configuration les plus couramment utilis&eacute;s
143 sont ceux qui modifient la configuration de points particuliers du syst&egrave;me de
144 fichiers ou de l'arborescence du site web.  Tout d'abord, il est important de
145 comprendre la diff&eacute;rence entre les deux.  Le syst&egrave;me de fichiers est une vue
146 de vos disques tels qu'ils sont per&ccedil;us par votre syst&egrave;me d'exploitation.
147 Par exemple, avec une installation par d&eacute;faut,
148 Apache httpd est situ&eacute; dans <code>/usr/local/apache2</code> pour le syst&egrave;me de
149 fichiers UNIX, ou <code>"c:/Program Files/Apache Group/Apache2"</code> pour
150 le syst&egrave;me de fichiers Windows.  (Notez que des slashes directs doivent
151 toujours &ecirc;tre utilis&eacute;s comme s&eacute;parateur de chemin
152 dans les fichiers de configuration d'Apache httpd, m&ecirc;me sous
153 Windows.)  Quant &agrave;
154 l'arborescence du site web, il s'agit d'une vue de votre site
155 tel que pr&eacute;sent&eacute; par le
156 serveur web et per&ccedil;ue par le client.  Ainsi le chemin <code>/dir/</code> dans
157 l'arborescence du site web correspond au chemin
158 <code>/usr/local/apache2/htdocs/dir/</code> dans le syst&egrave;me de fichiers pour
159 une installation d'Apache httpd par d&eacute;faut sous UNIX.
160 En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au
161 syst&egrave;me de fichiers, car les pages web peuvent &ecirc;tre g&eacute;n&eacute;r&eacute;es dynamiquement
162 &agrave; partir de bases de donn&eacute;es ou d'autres emplacements.</p>
163
164 <section id="filesystem"><title>Conteneurs de syst&egrave;me de fichiers</title>
165
166 <p>Les conteneurs <directive type="section" module="core">Directory</directive>
167 et <directive type="section" module="core">Files</directive>,
168 ainsi que leurs &eacute;quivalents acceptant les
169 <glossary ref="regex">expressions rationnelles</glossary>,
170 appliquent des directives &agrave; certaines parties du syst&egrave;me de fichiers.
171 Les directives contenues dans une section <directive
172 type="section" module="core">Directory</directive> s'appliquent au r&eacute;pertoire
173 pr&eacute;cis&eacute;, ainsi qu'&agrave; tous ses sous-r&eacute;pertoires et aux fichiers que ces
174 derniers contiennent.
175 Le m&ecirc;me effet peut &ecirc;tre obtenu en utilisant les <a
176 href="howto/htaccess.html">fichiers .htaccess</a>.  Par exemple, avec la
177 configuration suivante, l'indexation sera activ&eacute;e pour le r&eacute;pertoire
178 <code>/var/web/dir1</code> et tous ses sous-r&eacute;pertoires.</p>
179
180 <example>
181 &lt;Directory /var/web/dir1&gt;<br />
182 Options +Indexes<br />
183 &lt;/Directory&gt;
184 </example>
185
186 <p>Les directives contenues dans une section <directive type="section"
187 module="core">Files</directive> s'appliquent &agrave; tout fichier
188 avec le nom sp&eacute;cifi&eacute;, quel que soit le r&eacute;pertoire dans lequel il se trouve.
189 Ainsi par exemple, les directives de configuration suivantes, si elles sont
190 plac&eacute;es dans la section principale du fichier de configuration, vont interdire
191 l'acc&egrave;s &agrave; tout fichier nomm&eacute; <code>private.html</code> quel que soit
192 l'endroit o&ugrave; il se trouve.</p>
193
194 <example>
195 &lt;Files private.html&gt;<br />
196 Order allow,deny<br />
197 Deny from all<br />
198 &lt;/Files&gt;
199 </example>
200
201 <p>Pour faire r&eacute;f&eacute;rence &agrave; des fichiers qui se trouvent en des points
202 particuliers du syst&egrave;me de fichiers, les sections
203 <directive type="section" module="core">Files</directive> et
204 <directive type="section" module="core">Directory</directive>
205 peuvent &ecirc;tre combin&eacute;es.  Par exemple, la configuration suivante va interdire
206 l'acc&egrave;s &agrave; <code>/var/web/dir1/private.html</code>,
207 <code>/var/web/dir1/subdir2/private.html</code>,
208 <code>/var/web/dir1/subdir3/private.html</code>, ainsi que toute instance de
209 <code>private.html</code> qui se trouve dans l'arborescence
210 <code>/var/web/dir1/</code>.</p>
211
212 <example>
213 &lt;Directory /var/web/dir1&gt;<br />
214 &lt;Files private.html&gt;<br />
215 Order allow,deny<br />
216 Deny from all<br />
217 &lt;/Files&gt;<br />
218 &lt;/Directory&gt;
219 </example>
220 </section>
221
222 <section id="webspace"><title>Conteneurs de l'arborescence du site web</title>
223
224 <p>le conteneur <directive type="section" module="core">Location</directive>
225 et son &eacute;quivalent acceptant les
226 <glossary ref="regex">expressions rationnelles</glossary>, modifient quant &agrave; eux la
227 configuration de parties de l'arborescence du site web.  Par exemple, la
228 configuration suivante interdit l'acc&egrave;s &agrave; toute URL dont la partie chemin
229 commence par /private.
230 En particulier, l'interdiction s'appliquera aux requ&ecirc;tes pour :
231 <code>http://yoursite.example.com/private</code>,
232 <code>http://yoursite.example.com/private123</code>, et
233 <code>http://yoursite.example.com/private/dir/file.html</code> ainsi qu'&agrave;
234 toute requ&ecirc;te commen&ccedil;ant par la cha&icirc;ne de caract&egrave;res <code>/private</code>.</p>
235
236 <example>
237 &lt;LocationMatch ^/private&gt;<br />
238 Order Allow,Deny<br />
239 Deny from all<br />
240 &lt;/Location&gt;
241 </example>
242
243 <p>Le conteneur <directive type="section" module="core">Location</directive>
244 n'a pas besoin de faire r&eacute;f&eacute;rence &agrave; un &eacute;l&eacute;ment du syst&egrave;me de fichiers.
245 Par exemple, l'exemple suivant montre comment faire r&eacute;f&eacute;rence &agrave; une URL
246 particuli&egrave;re vers un gestionnaire interne du serveur HTTP Apache fourni par le module
247 <module>mod_status</module>.
248 Il n'est pas n&eacute;cessaire de trouver un fichier nomm&eacute; <code>server-status</code>
249 dans le syst&egrave;me de fichiers.</p>
250
251 <example>
252 &lt;Location /server-status&gt;<br />
253 SetHandler server-status<br />
254 &lt;/Location&gt;
255 </example>
256 </section>
257
258 <section id="overlapping-webspace"><title>Espace web imbriqu&eacute;</title>
259 <p>Pour contr&ocirc;ler deux URLs imbriqu&eacute;es, on doit tenir compte de l'ordre
260 dans lequel certaines sections ou directives sont &eacute;valu&eacute;es. Pour
261 <directive type="section" module="core">Location</directive>, on doit
262 avoir :</p>
263 <example>
264 &lt;Location /foo&gt;<br />
265 &lt;/Location&gt;<br />
266 &lt;Location /foo/bar&gt;<br />
267 &lt;/Location>
268 </example>
269 <p>Les directives <directive type="section"
270 module="core">Alias</directive>, quant &agrave; elles, sont &eacute;valu&eacute;es vice-versa :</p>
271 <example>
272 Alias /foo/bar /srv/www/uncommon/bar<br />
273 Alias /foo /srv/www/common/foo<br />
274 </example>
275 <p>Ceci est aussi vrai pour les directives <directive
276 module="mod_proxy">ProxyPass</directive> :</p>
277 <example>
278 ProxyPass /special-area http://special.example.com smax=5 max=10<br />
279 ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
280 </example>
281 </section> 
282
283
284 <section id="wildcards"><title>Caract&egrave;res de remplacement
285 et expressions rationnelles</title>
286
287 <p>Les conteneurs
288 <directive type="section" module="core">Directory</directive>,
289 <directive type="section" module="core">Files</directive>, et
290 <directive type="section" module="core">Location</directive>
291 peuvent utiliser des caract&egrave;res de remplacement de style shell comme dans
292 la fonction <code>fnmatch</code> de la biblioth&egrave;que C standard.
293 Le caract&egrave;re "*"
294 correspond &agrave; toute s&eacute;quence de caract&egrave;res, "?" &agrave; un caract&egrave;re seul,
295 et "[<em>seq</em>]" &agrave; tout caract&egrave;re contenu dans <em>seq</em>.
296 Le caract&egrave;re "/"
297 ne peut pas faire l'objet d'un remplacement;
298 il doit &ecirc;tre sp&eacute;cifi&eacute; explicitement.</p>
299
300 <p>Si une d&eacute;finition des crit&egrave;res de correspondance
301 encore plus souple est n&eacute;cessaire, chaque conteneur
302 poss&egrave;de son &eacute;quivalent acceptant les expressions rationnelles : <directive
303 type="section" module="core">DirectoryMatch</directive>, <directive
304 type="section" module="core">FilesMatch</directive>, et <directive
305 type="section" module="core">LocationMatch</directive> acceptent les
306 <glossary ref="regex">expressions rationnelles</glossary> compatibles Perl
307 pour d&eacute;finir les crit&egrave;res de correspondance.  Mais voyez plus loin la section
308 &agrave; propos de la combinaison des sections de configuration
309 pour comprendre comment l'utilisation de
310 conteneurs avec des expressions rationnelles va modifier la mani&egrave;re
311 dont les directives sont appliqu&eacute;es.</p>
312
313 <p>Un conteneur qui modifie la configuration de tous les
314 r&eacute;pertoires utilisateurs &agrave; l'aide de caract&egrave;res de remplacement
315 mais sans utiliser
316 les expressions rationnelles pourrait ressembler &agrave; ceci :</p>
317
318 <example>
319 &lt;Directory /home/*/public_html&gt;<br />
320 Options Indexes<br />
321 &lt;/Directory&gt;
322 </example>
323
324 <p>Avec les conteneurs utilisant les expressions rationnelles,
325 on peut interdire l'acc&egrave;s &agrave; de nombreux types de fichiers d'images
326 simultan&eacute;ment :</p>
327 <example>
328 &lt;FilesMatch \.(?i:gif|jpe?g|png)$&gt;<br />
329 Order allow,deny<br />
330 Deny from all<br />
331 &lt;/FilesMatch&gt;
332 </example>
333
334 </section>
335
336 <section id="whichwhen"><title>Que faut-il utiliser et quand ?</title>
337
338 <p>Choisir entre des conteneurs de syst&egrave;me de fichiers et des conteneurs
339 d'arborescence du site web est vraiment tr&egrave;s simple.
340 Pour appliquer des directives &agrave; des objets qui r&eacute;sident dans le syst&egrave;me de
341 fichiers, utilisez toujours un conteneur <directive type="section"
342 module="core">Directory</directive> ou <directive type="section"
343 module="core">Files</directive>.  Pour appliquer des directives &agrave; des objets
344 qui ne r&eacute;sident pas dans le syst&egrave;me de fichiers (comme une page web g&eacute;n&eacute;r&eacute;e
345 par une base de donn&eacute;es), utilisez un conteneur <directive type="section"
346 module="core">Location</directive>.</p>
347
348 <p>Il ne faut jamais utiliser un conteneur <directive type="section"
349 module="core">Location</directive> pour restreindre l'acc&egrave;s &agrave; des
350 objets du syst&egrave;me de fichiers, car plusieurs localisations de
351 l'arborescence du site web (URLs) peuvent correspondre &agrave; la m&ecirc;me localisation
352 du syst&egrave;me de fichier, ce qui peut permettre de contourner vos restrictions.
353 Par exemple, imaginez la configuration suivante :</p>
354
355 <example>
356 &lt;Location /dir/&gt;<br />
357 Order allow,deny<br />
358 Deny from all<br />
359 &lt;/Location&gt;
360 </example>
361
362 <p>Elle fonctionne correctement si la requ&ecirc;te appelle
363 <code>http://yoursite.example.com/dir/</code>.  Mais que va-t-il se passer si
364 votre syst&egrave;me de fichiers est insensible &agrave; la casse ?
365 Votre restriction va pouvoir &ecirc;tre tout simplement contourn&eacute;e en envoyant une
366 requ&ecirc;te sur
367 <code>http://yoursite.example.com/DIR/</code>.  Le conteneur <directive
368 type="section" module="core">Directory</directive>, quant &agrave; lui, s'appliquera
369 &agrave; tout contenu servi &agrave; partir de cette localisation,
370 sans tenir compte de la mani&egrave;re dont il est appel&eacute;.
371 (Les liens du syst&egrave;me de fichiers constituent une exception.
372 Le m&ecirc;me r&eacute;pertoire peut &ecirc;tre plac&eacute; dans plusieurs parties du syst&egrave;me de
373 fichiers en utilisant des liens symboliques.  Le conteneur
374 <directive type="section" module="core">Directory</directive> va suivre le
375 lien symbolique sans modifier le nom du chemin.  Par cons&eacute;quent, pour plus de
376 s&eacute;curit&eacute;, les liens symboliques doivent &ecirc;tre d&eacute;sactiv&eacute;s &agrave; l'aide de la
377 directive
378 <directive module="core">Options</directive> appropri&eacute;e.)</p>
379
380 <p>Si vous pensez que vous n'&ecirc;tes pas concern&eacute; par ce probl&egrave;me
381 parceque vous utilisez un syst&egrave;me de fichiers sensible &agrave; la casse,
382 gardez &agrave; l'esprit qu'il y a de nombreuses autres mani&egrave;res pour faire
383 correspondre plusieurs localisations de l'arborescence du site web &agrave; la m&ecirc;me
384 localisation du syst&egrave;me de fichiers.  C'est pourquoi vous devez autant que
385 possible toujours utiliser les conteneurs de syst&egrave;me de fichiers.
386 Il y a cependant une exception &agrave; cette r&egrave;gle.  Placer des restrictions de
387 configuration dans un conteneur <code>&lt;Location
388 /&gt;</code> est tout &agrave; fait sans rique car ce conteneur va s'appliquer &agrave;
389 toutes les requ&ecirc;tes sans tenir compte de l'URL sp&eacute;cifique.</p>
390 </section>
391
392 </section>
393
394 <section id="virtualhost"><title>H&ocirc;tes virtuels</title>
395
396 <p>Le conteneur <directive type="section" module="core">VirtualHost</directive>
397 contient des directives qui s'appliquent &agrave; des h&ocirc;tes sp&eacute;cifiques.
398 Ceci s'av&egrave;re utile pour servir des h&ocirc;tes multiples &agrave; partir de la m&ecirc;me machine,
399 chacun d'entre eux poss&eacute;dant une configuration diff&eacute;rente.  Pour de plus amples
400 informations,
401 voir la <a href="vhosts/">Documentation sur les h&ocirc;tes virtuels</a>.</p>
402 </section>
403
404 <section id="proxy"><title>Mandataire</title>
405
406 <p>Les conteneurs
407 <directive type="section" module="mod_proxy">Proxy</directive>
408 et <directive type="section" module="mod_proxy">ProxyMatch</directive>
409 appliquent les directives de configuration qu'ils contiennent uniquement aux
410 sites qui correspondent &agrave; l'URL sp&eacute;cifi&eacute;e et auxquels on a
411 acc&eacute;d&eacute; via le serveur mandataire du module <module>mod_proxy</module>.
412 Par exemple, la configuration suivante
413 va interdire l'utilisation du serveur proxy pour acc&eacute;der au site
414 <code>cnn.com</code>.</p>
415
416 <example>
417 &lt;Proxy http://cnn.com/*&gt;<br />
418 Order allow,deny<br />
419 Deny from all<br />
420 &lt;/Proxy&gt;
421 </example>
422 </section>
423
424 <section id="whatwhere"><title>Quelles sont les directives autoris&eacute;es ?</title>
425
426 <p>Pour d&eacute;terminer quelles sont les directives autoris&eacute;es pour tel type de
427 section de configuration, v&eacute;rifiez le <a
428 href="mod/directive-dict.html#Context">Contexte</a> de la directive.
429 Tout ce qui est autoris&eacute; dans les sections
430 <directive type="section" module="core">Directory</directive>
431 l'est aussi d'un point de vue syntaxique dans les sections
432 <directive type="section" module="core">DirectoryMatch</directive>,
433 <directive type="section" module="core">Files</directive>,
434 <directive type="section" module="core">FilesMatch</directive>,
435 <directive type="section" module="core">Location</directive>,
436 <directive type="section" module="core">LocationMatch</directive>,
437 <directive type="section" module="mod_proxy">Proxy</directive>,
438 et <directive type="section" module="mod_proxy">ProxyMatch</directive>.
439 Il y a cependant quelques exceptions :</p>
440
441 <ul>
442 <li>La directive <directive module="core">AllowOverride</directive>
443 ne fonctionne que dans les sections
444 <directive type="section" module="core">Directory</directive>.</li>
445
446 <li>Les <directive
447 module="core">Options</directive> <code>FollowSymLinks</code> et
448 <code>SymLinksIfOwnerMatch</code>  ne fonctionnent que dans les sections
449 <directive type="section" module="core">Directory</directive> ou les fichiers
450 <code>.htaccess</code>.</li>
451
452 <li>La directive <directive module="core">Options</directive> ne peut pas &ecirc;tre
453 utilis&eacute;e dans les sections
454 <directive type="section" module="core">Files</directive>
455 et <directive type="section" module="core">FilesMatch</directive>.</li>
456 </ul>
457 </section>
458
459 <section id="mergin"><title>Comment les sections sont combin&eacute;es entre elles</title>
460
461 <p>Les sections de configuration sont appliqu&eacute;es dans un ordre tr&egrave;s particulier.
462 Il est important de savoir comment cet ordre est d&eacute;fini car il peut avoir
463 des effets importants sur la mani&egrave;re dont les directives de configuration
464 sont interpr&eacute;t&eacute;es.</p>
465
466     <p>L'ordre dans lequel les sections sont combin&eacute;es est :</p>
467
468     <ol>
469       <li> Les sections <directive type="section"
470       module="core">Directory</directive> (&agrave; l'exception des
471       expressions rationnelles)
472       et les fichiers <code>.htaccess</code> sont appliqu&eacute;s simultan&eacute;ment (avec
473       la possibilit&eacute; pour <code>.htaccess</code>, s'il y est autoris&eacute;, de
474       pr&eacute;valoir sur
475       <directive type="section" module="core">Directory</directive>)</li>
476
477       <li>Les sections
478       <directive type="section" module="core">DirectoryMatch</directive>
479       (et <code>&lt;Directory ~&gt;</code>)</li>
480
481       <li>Les sections <directive type="section"
482       module="core">Files</directive> et <directive
483       type="section" module="core">FilesMatch</directive> sont appliqu&eacute;es
484       simultan&eacute;ment</li>
485
486       <li>Les sections
487       <directive type="section" module="core">Location</directive>
488       et <directive type="section"
489       module="core">LocationMatch</directive> sont appliqu&eacute;es
490       simultan&eacute;ment</li>
491     </ol>
492
493     <p>Mises &agrave; part les sections <directive type="section"
494     module="core">Directory</directive>, chaque groupe est trait&eacute; selon
495     l'ordre dans lequel il appara&icirc;t dans les fichiers de configuration.
496     Les sections <directive
497     type="section" module="core">Directory</directive> (groupe 1 ci-dessus)
498     sont trait&eacute;es dans l'ordre du r&eacute;pertoire le plus court vers le plus long.
499     Par exemple, <code>&lt;Directory /var/web/dir&gt;</code> sera
500     trait&eacute; avant <code>&lt;Directory
501     /var/web/dir/subdir&gt;</code>.  Si plusieurs sections <directive
502     type="section" module="core">Directory</directive> s'appliquent au m&ecirc;me
503     r&eacute;pertoire, elles sont trait&eacute;es selon l'ordre dans lequel elles
504     apparaissent dans le fichier de configuration.
505     Les sections de configuration incluses via la directive <directive
506     module="core">Include</directive> sont trait&eacute;es comme si elles se
507     trouvaient r&eacute;ellement dans le fichier qui les inclut &agrave; la position de la
508     directive
509     <directive module="core">Include</directive>.</p>
510
511     <p>Les sections situ&eacute;es &agrave; l'int&eacute;rieur de sections <directive type="section"
512     module="core">VirtualHost</directive>
513     sont appliqu&eacute;es <em>apr&egrave;s</em> les sections correspondantes situ&eacute;es en
514     dehors de la d&eacute;finition de l'h&ocirc;te virtuel, ce qui permet &agrave; l'h&ocirc;te virtuel
515     de pr&eacute;valoir sur la configuration du serveur principal.</p>
516
517     <p>Quand la requ&ecirc;te est servie par le module <module>mod_proxy</module>,
518     le conteneur <directive module="mod_proxy" type="section">Proxy</directive>
519     prend la place du conteneur <directive module="core"
520     type="section">Directory</directive> dans l'ordre de traitement.</p>
521
522     <p>Les sections situ&eacute;es plus loin dans le fichier de configuration pr&eacute;valent
523     sur celles qui les pr&eacute;c&egrave;dent.</p>
524
525 <note><title>Note technique</title>
526         Une s&eacute;quence
527         <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
528         est r&eacute;ellement trait&eacute;e juste avant la phase de traduction du nom
529         (o&ugrave; <code>Aliases</code> et <code>DocumentRoots</code>
530       sont utilis&eacute;s pour faire correspondre les URLs aux noms de fichiers).
531       Les effets de cette s&eacute;quence disparaissent totalement lorsque
532       la traduction est termin&eacute;e.
533 </note>
534
535 <section id="merge-examples"><title>Quelques exemples</title>
536
537 <p>Voici un exemple imaginaire qui montre l'ordre de combinaison des sections.
538 En supposant qu'elles s'appliquent toutes &agrave; la requ&ecirc;te, les directives de
539 cet exemple seront appliqu&eacute;es dans l'ordre suivant : A &gt; B &gt; C &gt; D &gt;
540 E.</p>
541
542 <example>
543 &lt;Location /&gt;<br />
544 E<br />
545 &lt;/Location&gt;<br />
546 <br />
547 &lt;Files f.html&gt;<br />
548 D<br />
549 &lt;/Files&gt;<br />
550 <br />
551 &lt;VirtualHost *&gt;<br />
552 &lt;Directory /a/b&gt;<br />
553 B<br />
554 &lt;/Directory&gt;<br />
555 &lt;/VirtualHost&gt;<br />
556 <br />
557 &lt;DirectoryMatch "^.*b$"&gt;<br />
558 C<br />
559 &lt;/DirectoryMatch&gt;<br />
560 <br />
561 &lt;Directory /a/b&gt;<br />
562 A<br />
563 &lt;/Directory&gt;<br />
564 <br />
565 </example>
566
567 <p>Pour un exemple plus concret, consid&eacute;rez ce qui suit.  Sans tenir compte
568 de toute restriction d'acc&egrave;s plac&eacute;e dans les sections <directive module="core"
569 type="section">Directory</directive>, la section <directive
570 module="core" type="section">Location</directive> sera
571 &eacute;valu&eacute;e en dernier et permettra un acc&egrave;s au serveur sans aucune restriction.
572 En d'autres termes, l'ordre de la combinaison des sections est important,
573 soyez donc prudent !</p>
574
575 <example>
576 &lt;Location /&gt;<br />
577 Order deny,allow<br />
578 Allow from all<br />
579 &lt;/Location&gt;<br />
580 <br />:if expand("%") == ""|browse confirm w|else|confirm w|endif
581
582 # Arrghs!  Cette section &lt;Directory&gt; n'aura aucun effet<br />
583 &lt;Directory /&gt;<br />
584 Order allow,deny<br />
585 Allow from all<br />
586 Deny from badguy.example.com<br />
587 &lt;/Directory&gt;
588 </example>
589
590 </section>
591
592 </section>
593 </manualpage>