]> granicus.if.org Git - apache/blob - docs/manual/sections.xml.fr
Update transforms.
[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 : 1300910 -->
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">MimeMagicFile</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,
140 arborescence du site web et expressions bool&eacute;ennes</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="mod_alias">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="expressions"><title>Expressions bool&eacute;ennes</title>
337 <p>La directive <directive type="section" module="core">If</directive>
338 permet de modifier la configuration en fonction d'une condition qui peut
339 &ecirc;tre d&eacute;finie sous la forme d'une expression bool&eacute;enne. Dans l'exemple
340 suivant, l'acc&egrave;s est interdit si l'en-t&ecirc;te HTTP Referer ne commence pas
341 par "http://www.example.com/".</p>
342 <example>
343 &lt;If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"&gt;<br />
344 Require all denied<br />
345 &lt;/If&gt;
346 </example>
347
348 </section>
349
350 <section id="whichwhen"><title>Que faut-il utiliser et quand ?</title>
351
352 <p>Choisir entre des conteneurs de syst&egrave;me de fichiers et des conteneurs
353 d'arborescence du site web est vraiment tr&egrave;s simple.
354 Pour appliquer des directives &agrave; des objets qui r&eacute;sident dans le syst&egrave;me de
355 fichiers, utilisez toujours un conteneur <directive type="section"
356 module="core">Directory</directive> ou <directive type="section"
357 module="core">Files</directive>.  Pour appliquer des directives &agrave; des objets
358 qui ne r&eacute;sident pas dans le syst&egrave;me de fichiers (comme une page web g&eacute;n&eacute;r&eacute;e
359 par une base de donn&eacute;es), utilisez un conteneur <directive type="section"
360 module="core">Location</directive>.</p>
361
362 <p>Il ne faut jamais utiliser un conteneur <directive type="section"
363 module="core">Location</directive> pour restreindre l'acc&egrave;s &agrave; des
364 objets du syst&egrave;me de fichiers, car plusieurs localisations de
365 l'arborescence du site web (URLs) peuvent correspondre &agrave; la m&ecirc;me localisation
366 du syst&egrave;me de fichier, ce qui peut permettre de contourner vos restrictions.
367 Par exemple, imaginez la configuration suivante :</p>
368
369 <example>
370 &lt;Location /dir/&gt;<br />
371 Order allow,deny<br />
372 Deny from all<br />
373 &lt;/Location&gt;
374 </example>
375
376 <p>Elle fonctionne correctement si la requ&ecirc;te appelle
377 <code>http://yoursite.example.com/dir/</code>.  Mais que va-t-il se passer si
378 votre syst&egrave;me de fichiers est insensible &agrave; la casse ?
379 Votre restriction va pouvoir &ecirc;tre tout simplement contourn&eacute;e en envoyant une
380 requ&ecirc;te sur
381 <code>http://yoursite.example.com/DIR/</code>.  Le conteneur <directive
382 type="section" module="core">Directory</directive>, quant &agrave; lui, s'appliquera
383 &agrave; tout contenu servi &agrave; partir de cette localisation,
384 sans tenir compte de la mani&egrave;re dont il est appel&eacute;.
385 (Les liens du syst&egrave;me de fichiers constituent une exception.
386 Le m&ecirc;me r&eacute;pertoire peut &ecirc;tre plac&eacute; dans plusieurs parties du syst&egrave;me de
387 fichiers en utilisant des liens symboliques.  Le conteneur
388 <directive type="section" module="core">Directory</directive> va suivre le
389 lien symbolique sans modifier le nom du chemin.  Par cons&eacute;quent, pour plus de
390 s&eacute;curit&eacute;, les liens symboliques doivent &ecirc;tre d&eacute;sactiv&eacute;s &agrave; l'aide de la
391 directive
392 <directive module="core">Options</directive> appropri&eacute;e.)</p>
393
394 <p>Si vous pensez que vous n'&ecirc;tes pas concern&eacute; par ce probl&egrave;me
395 parceque vous utilisez un syst&egrave;me de fichiers sensible &agrave; la casse,
396 gardez &agrave; l'esprit qu'il y a de nombreuses autres mani&egrave;res pour faire
397 correspondre plusieurs localisations de l'arborescence du site web &agrave; la m&ecirc;me
398 localisation du syst&egrave;me de fichiers.  C'est pourquoi vous devez autant que
399 possible toujours utiliser les conteneurs de syst&egrave;me de fichiers.
400 Il y a cependant une exception &agrave; cette r&egrave;gle.  Placer des restrictions de
401 configuration dans un conteneur <code>&lt;Location
402 /&gt;</code> est tout &agrave; fait sans rique car ce conteneur va s'appliquer &agrave;
403 toutes les requ&ecirc;tes sans tenir compte de l'URL sp&eacute;cifique.</p>
404 </section>
405
406 <section id="nesting"><title>Imbrication des sections</title>
407
408 <p>Certains types de sections peuvent &ecirc;tre imbriqu&eacute;s : d'une part, on
409 peut utiliser les sections <directive type="section"
410 module="core">Files</directive> &agrave; l'int&eacute;rieur des sections <directive
411 type="section" module="core">Directory</directive>, d'autre part, on
412 peut utiliser les
413 directives <directive type="section" module="core">If</directive> &agrave;
414 l'int&eacute;rieur des sections <directive type="section"
415 module="core">Directory</directive>, <directive type="section"
416 module="core">Location</directive> et <directive type="section"
417 module="core">Files</directive>. Les valeurs des expressions
418 rationnelles correspondant aux sections nomm&eacute;es se comportent de mani&egrave;re
419 identique.</p>
420
421 <p>Les sections imbriqu&eacute;es sont fusionn&eacute;es apr&egrave;s les sections
422 non-imbriqu&eacute;es de m&ecirc;me type.</p>
423
424 </section>
425
426 </section>
427
428 <section id="virtualhost"><title>H&ocirc;tes virtuels</title>
429
430 <p>Le conteneur <directive type="section" module="core">VirtualHost</directive>
431 contient des directives qui s'appliquent &agrave; des h&ocirc;tes sp&eacute;cifiques.
432 Ceci s'av&egrave;re utile pour servir des h&ocirc;tes multiples &agrave; partir de la m&ecirc;me machine,
433 chacun d'entre eux poss&eacute;dant une configuration diff&eacute;rente.  Pour de plus amples
434 informations,
435 voir la <a href="vhosts/">Documentation sur les h&ocirc;tes virtuels</a>.</p>
436 </section>
437
438 <section id="proxy"><title>Mandataire</title>
439
440 <p>Les conteneurs
441 <directive type="section" module="mod_proxy">Proxy</directive>
442 et <directive type="section" module="mod_proxy">ProxyMatch</directive>
443 appliquent les directives de configuration qu'ils contiennent uniquement aux
444 sites qui correspondent &agrave; l'URL sp&eacute;cifi&eacute;e et auxquels on a
445 acc&eacute;d&eacute; via le serveur mandataire du module <module>mod_proxy</module>.
446 Par exemple, la configuration suivante
447 va interdire l'utilisation du serveur proxy pour acc&eacute;der au site
448 <code>www.example.com</code>.</p>
449
450 <example>
451 &lt;Proxy http://www.example.com/*&gt;<br />
452 Order allow,deny<br />
453 Deny from all<br />
454 &lt;/Proxy&gt;
455 </example>
456 </section>
457
458 <section id="whatwhere"><title>Quelles sont les directives autoris&eacute;es ?</title>
459
460 <p>Pour d&eacute;terminer quelles sont les directives autoris&eacute;es pour tel type de
461 section de configuration, v&eacute;rifiez le <a
462 href="mod/directive-dict.html#Context">Contexte</a> de la directive.
463 Tout ce qui est autoris&eacute; dans les sections
464 <directive type="section" module="core">Directory</directive>
465 l'est aussi d'un point de vue syntaxique dans les sections
466 <directive type="section" module="core">DirectoryMatch</directive>,
467 <directive type="section" module="core">Files</directive>,
468 <directive type="section" module="core">FilesMatch</directive>,
469 <directive type="section" module="core">Location</directive>,
470 <directive type="section" module="core">LocationMatch</directive>,
471 <directive type="section" module="mod_proxy">Proxy</directive>,
472 et <directive type="section" module="mod_proxy">ProxyMatch</directive>.
473 Il y a cependant quelques exceptions :</p>
474
475 <ul>
476 <li>La directive <directive module="core">AllowOverride</directive>
477 ne fonctionne que dans les sections
478 <directive type="section" module="core">Directory</directive>.</li>
479
480 <li>Les <directive
481 module="core">Options</directive> <code>FollowSymLinks</code> et
482 <code>SymLinksIfOwnerMatch</code>  ne fonctionnent que dans les sections
483 <directive type="section" module="core">Directory</directive> ou les fichiers
484 <code>.htaccess</code>.</li>
485
486 <li>La directive <directive module="core">Options</directive> ne peut pas &ecirc;tre
487 utilis&eacute;e dans les sections
488 <directive type="section" module="core">Files</directive>
489 et <directive type="section" module="core">FilesMatch</directive>.</li>
490 </ul>
491 </section>
492
493 <section id="mergin"><title>Comment les sections sont combin&eacute;es entre elles</title>
494
495 <p>Les sections de configuration sont appliqu&eacute;es dans un ordre tr&egrave;s particulier.
496 Il est important de savoir comment cet ordre est d&eacute;fini car il peut avoir
497 des effets importants sur la mani&egrave;re dont les directives de configuration
498 sont interpr&eacute;t&eacute;es.</p>
499
500     <p>L'ordre dans lequel les sections sont combin&eacute;es est :</p>
501
502     <ol>
503       <li> Les sections <directive type="section"
504       module="core">Directory</directive> (&agrave; l'exception des
505       expressions rationnelles)
506       et les fichiers <code>.htaccess</code> sont appliqu&eacute;s simultan&eacute;ment (avec
507       la possibilit&eacute; pour <code>.htaccess</code>, s'il y est autoris&eacute;, de
508       pr&eacute;valoir sur
509       <directive type="section" module="core">Directory</directive>)</li>
510
511       <li>Les sections
512       <directive type="section" module="core">DirectoryMatch</directive>
513       (et <code>&lt;Directory ~&gt;</code>)</li>
514
515       <li>Les sections <directive type="section"
516       module="core">Files</directive> et <directive
517       type="section" module="core">FilesMatch</directive> sont appliqu&eacute;es
518       simultan&eacute;ment</li>
519
520       <li>Les sections
521       <directive type="section" module="core">Location</directive>
522       et <directive type="section"
523       module="core">LocationMatch</directive> sont appliqu&eacute;es
524       simultan&eacute;ment</li>
525
526       <li>Les directives <directive type="section" module="core">If</directive>
527       </li>
528     </ol>
529
530     <p>Mises &agrave; part les sections <directive type="section"
531     module="core">Directory</directive>, chaque groupe est trait&eacute; selon
532     l'ordre dans lequel il appara&icirc;t dans les fichiers de configuration.
533     Les sections <directive
534     type="section" module="core">Directory</directive> (groupe 1 ci-dessus)
535     sont trait&eacute;es dans l'ordre du r&eacute;pertoire le plus court vers le plus long.
536     Par exemple, <code>&lt;Directory /var/web/dir&gt;</code> sera
537     trait&eacute; avant <code>&lt;Directory
538     /var/web/dir/subdir&gt;</code>.  Si plusieurs sections <directive
539     type="section" module="core">Directory</directive> s'appliquent au m&ecirc;me
540     r&eacute;pertoire, elles sont trait&eacute;es selon l'ordre dans lequel elles
541     apparaissent dans le fichier de configuration.
542     Les sections de configuration incluses via la directive <directive
543     module="core">Include</directive> sont trait&eacute;es comme si elles se
544     trouvaient r&eacute;ellement dans le fichier qui les inclut &agrave; la position de la
545     directive
546     <directive module="core">Include</directive>.</p>
547
548     <p>Les sections situ&eacute;es &agrave; l'int&eacute;rieur de sections <directive type="section"
549     module="core">VirtualHost</directive>
550     sont appliqu&eacute;es <em>apr&egrave;s</em> les sections correspondantes situ&eacute;es en
551     dehors de la d&eacute;finition de l'h&ocirc;te virtuel, ce qui permet &agrave; l'h&ocirc;te virtuel
552     de pr&eacute;valoir sur la configuration du serveur principal.</p>
553
554     <p>Quand la requ&ecirc;te est servie par le module <module>mod_proxy</module>,
555     le conteneur <directive module="mod_proxy" type="section">Proxy</directive>
556     prend la place du conteneur <directive module="core"
557     type="section">Directory</directive> dans l'ordre de traitement.</p>
558
559     <p>Les sections situ&eacute;es plus loin dans le fichier de configuration pr&eacute;valent
560     sur celles qui les pr&eacute;c&egrave;dent ; cependant, chaque
561     module est responsable de la d&eacute;finition de la forme que doit prendre
562     cette pr&eacute;valence. Une section de configuration ult&eacute;rieure contenant
563     des directives d'un certain module peut &ecirc;tre &agrave; l'origine d'une
564     fusion conceptuelle de certaines directives, de toutes les
565     directives, ou un remplacement complet de la configuration du module
566     par ses valeurs par d&eacute;faut et les directives explicitement d&eacute;finies
567     dans cette section ult&eacute;rieure.</p>
568
569 <note><title>Note technique</title>
570         Une s&eacute;quence
571         <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
572         est r&eacute;ellement trait&eacute;e juste avant la phase de traduction du nom
573         (o&ugrave; <code>Aliases</code> et <code>DocumentRoots</code>
574       sont utilis&eacute;s pour faire correspondre les URLs aux noms de fichiers).
575       Les effets de cette s&eacute;quence disparaissent totalement lorsque
576       la traduction est termin&eacute;e.
577 </note>
578
579 <section id="merge-examples"><title>Quelques exemples</title>
580
581 <p>Voici un exemple imaginaire qui montre l'ordre de combinaison des sections.
582 En supposant qu'elles s'appliquent toutes &agrave; la requ&ecirc;te, les directives de
583 cet exemple seront appliqu&eacute;es dans l'ordre suivant : A &gt; B &gt; C &gt; D &gt;
584 E.</p>
585
586 <example>
587 &lt;Location /&gt;<br />
588 E<br />
589 &lt;/Location&gt;<br />
590 <br />
591 &lt;Files f.html&gt;<br />
592 D<br />
593 &lt;/Files&gt;<br />
594 <br />
595 &lt;VirtualHost *&gt;<br />
596 &lt;Directory /a/b&gt;<br />
597 B<br />
598 &lt;/Directory&gt;<br />
599 &lt;/VirtualHost&gt;<br />
600 <br />
601 &lt;DirectoryMatch "^.*b$"&gt;<br />
602 C<br />
603 &lt;/DirectoryMatch&gt;<br />
604 <br />
605 &lt;Directory /a/b&gt;<br />
606 A<br />
607 &lt;/Directory&gt;<br />
608 <br />
609 </example>
610
611 <p>Pour un exemple plus concret, consid&eacute;rez ce qui suit.  Sans tenir compte
612 de toute restriction d'acc&egrave;s plac&eacute;e dans les sections <directive module="core"
613 type="section">Directory</directive>, la section <directive
614 module="core" type="section">Location</directive> sera
615 &eacute;valu&eacute;e en dernier et permettra un acc&egrave;s au serveur sans aucune restriction.
616 En d'autres termes, l'ordre de la combinaison des sections est important,
617 soyez donc prudent !</p>
618
619 <example>
620 &lt;Location /&gt;<br />
621 Order deny,allow<br />
622 Allow from all<br />
623 &lt;/Location&gt;<br />
624 <br />:if expand("%") == ""|browse confirm w|else|confirm w|endif
625
626 # Arrghs!  Cette section &lt;Directory&gt; n'aura aucun effet<br />
627 &lt;Directory /&gt;<br />
628 Order allow,deny<br />
629 Allow from all<br />
630 Deny from badguy.example.com<br />
631 &lt;/Directory&gt;
632 </example>
633
634 </section>
635
636 </section>
637 </manualpage>