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