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