]> granicus.if.org Git - apache/blob - docs/manual/sections.html.fr
rebuild with extraclean to pick up permalinks in
[apache] / docs / manual / sections.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>Sections de configuration - Serveur Apache HTTP Version 2.5</title>
11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
14 <script src="./style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
20 <p class="apache">Serveur Apache HTTP Version 2.5</p>
21 <img alt="" src="./images/feather.png" /></div>
22 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
23 <div id="path">
24 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Sections de configuration</h1>
25 <div class="toplang">
26 <p><span>Langues Disponibles: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
27 <a href="./fr/sections.html" title="Français">&nbsp;fr&nbsp;</a> |
28 <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
29 <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
30 <a href="./tr/sections.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
31 </div>
32  <p>Les directives des <a href="configuring.html">fichiers de configuration</a> peuvent s'appliquer
33 au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes,
34 ou URLs particuliers.  Ce document décrit comment utiliser les conteneurs de
35 sections de configuration ou les fichiers <code>.htaccess</code> pour
36 modifier la portée des directives de configuration.</p>
37 </div>
38 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#types">Types de conteneurs de sections de
39 configuration</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#file-and-web">Système de fichiers,
41 arborescence du site web et expressions booléennes</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Hôtes virtuels</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#proxy">Mandataire</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#whatwhere">Quelles sont les directives autorisées ?</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#merging">Comment les sections sont combinées entre elles</a></li>
46 </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
47 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
48 <div class="section">
49 <h2><a name="types" id="types">Types de conteneurs de sections de
50 configuration</a><a title="Lien permanent" href="#types" class="permalink">&para;</a></h2>
51
52 <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch">&lt;DirectoryMatch&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule">&lt;IfModule&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_version.html#ifversion">&lt;IfVersion&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_md.html#mdomainsetsection">&lt;MDomainSet&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch">&lt;ProxyMatch&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li></ul></td></tr></table>
53
54 <p>Il existe deux grands types de conteneurs.  La plupart des conteneurs sont
55 évalués pour chaque requête.  Les directives qu'ils contiennent s'appliquent
56 seulement aux requêtes qui sont concernées par le conteneur.  En revanche,
57 les conteneurs
58 <code class="directive"><a href="./mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code>, <code class="directive"><a href="./mod/core.html#ifmodule">&lt;IfModule&gt;</a></code>, et
59 <code class="directive"><a href="./mod/mod_version.html#ifversion">&lt;IfVersion&gt;</a></code> sont
60 évalués seulement au démarrage et au redémarrage du serveur.
61 Si leurs conditions sont vérifiées au démarrage, les directives qu'ils contiennent
62 s'appliqueront à toutes les requêtes.  Si leurs conditions ne sont pas vérifiées, les
63 directives qu'ils contiennent seront ignorées.</p>
64
65 <p>Le conteneur <code class="directive"><a href="./mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code>
66 contient des directives qui ne seront appliquées que si un paramètre
67 approprié a été défini dans la ligne de commande de <code class="program"><a href="./programs/httpd.html">httpd</a></code>.
68 Par exemple,
69 avec la configuration suivante, toutes les requêtes seront redirigées vers
70 un autre site si le serveur est démarré en utilisant la ligne de commande :
71 <code>httpd -DClosedForNow</code>:</p>
72
73 <pre class="prettyprint lang-config">&lt;IfDefine ClosedForNow&gt;
74     Redirect "/" "http://otherserver.example.com/"
75 &lt;/IfDefine&gt;</pre>
76
77
78 <p>Le conteneur <code class="directive"><a href="./mod/core.html#ifmodule">&lt;IfModule&gt;</a></code>
79 est similaire; les directives qu'il contient ne s'appliqueront que si
80 un module particulier est disponible au niveau du serveur.
81 Le module doit être soit compilé statiquement dans le serveur, soit
82 dynamiquement et dans ce cas, la ligne <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> correspondante doit apparaître
83 plus haut dans le fichier de configuration.  Ce conteneur ne doit être
84 utilisé que dans le cas où votre fichier de configuration doit fonctionner
85 indépendamment de la présence ou de l'absence de certains modules.
86 Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer
87 systématiquement, car vous pouvez perdre ainsi de précieux messages d'erreur
88 à propos de modules manquants.</p>
89
90 <p>Dans l'exemple suivant, la directive <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code> ne s'appliquera que si le
91 module <code class="module"><a href="./mod/mod_mime_magic.html">mod_mime_magic</a></code> est disponible.</p>
92
93 <pre class="prettyprint lang-config">&lt;IfModule mod_mime_magic.c&gt;
94     MimeMagicFile conf/magic
95 &lt;/IfModule&gt;</pre>
96
97
98 <p>Le conteneur
99 <code class="directive"><a href="./mod/mod_version.html#ifversion">&lt;IfVersion&gt;</a></code>
100 est similaire aux conteneurs <code class="directive"><a href="./mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code> et <code class="directive"><a href="./mod/core.html#ifmodule">&lt;IfModule&gt;</a></code>; les directives qu'il contient ne
101 s'appliqueront que si une version particulière du serveur s'exécute.  Ce
102 conteneur a été conçu pour une utilisation dans les suites de tests
103 et les grands réseaux qui doivent prendre en compte différentes versions
104 et configurations de httpd.</p>
105
106 <pre class="prettyprint lang-config">&lt;IfVersion &gt;= 2.4&gt;
107     # les directives situées ici ne s'appliquent que si la version <br />
108     # est supérieure ou égale à 2.4.0.
109 &lt;/IfVersion&gt;</pre>
110
111
112 <p><code class="directive"><a href="./mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code>,
113 <code class="directive"><a href="./mod/core.html#ifmodule">&lt;IfModule&gt;</a></code>, et
114 <code class="directive"><a href="./mod/mod_version.html#ifversion">&lt;IfVersion&gt;</a></code>
115 peuvent inverser leur test conditionnel en le faisant précéder d'un "!".
116 De plus, ces sections peuvent être imbriquées afin de définir des restrictions
117 plus complexes.</p>
118 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
119 <div class="section">
120 <h2><a name="file-and-web" id="file-and-web">Système de fichiers,
121 arborescence du site web et expressions booléennes</a><a title="Lien permanent" href="#file-and-web" class="permalink">&para;</a></h2>
122
123 <p>Les conteneurs de sections de configuration les plus couramment utilisés
124 sont ceux qui modifient la configuration de points particuliers du système de
125 fichiers ou de l'arborescence du site web.  Tout d'abord, il est important de
126 comprendre la différence entre les deux.  Le système de fichiers est une vue
127 de vos disques tels qu'ils sont perçus par votre système d'exploitation.
128 Par exemple, avec une installation par défaut,
129 Apache httpd est situé dans <code>/usr/local/apache2</code> pour le système de
130 fichiers UNIX, ou <code>"c:/Program Files/Apache Group/Apache2"</code> pour
131 le système de fichiers Windows.  (Notez que des slashes directs doivent
132 toujours être utilisés comme séparateur de chemin
133 dans les fichiers de configuration d'Apache httpd, même sous
134 Windows.)  Quant à
135 l'arborescence du site web, il s'agit d'une vue de votre site
136 tel que présenté par le
137 serveur web et perçue par le client.  Ainsi le chemin <code>/dir/</code> dans
138 l'arborescence du site web correspond au chemin
139 <code>/usr/local/apache2/htdocs/dir/</code> dans le système de fichiers pour
140 une installation d'Apache httpd par défaut sous UNIX.
141 En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au
142 système de fichiers, car les pages web peuvent être générées dynamiquement
143 à partir de bases de données ou d'autres emplacements.</p>
144
145 <h3><a name="filesystem" id="filesystem">Conteneurs de système de fichiers</a></h3>
146
147 <p>Les conteneurs <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>
148 et <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>,
149 ainsi que leurs équivalents acceptant les
150 <a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a>,
151 appliquent des directives à certaines parties du système de fichiers.
152 Les directives contenues dans une section <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> s'appliquent au répertoire
153 précisé, ainsi qu'à tous ses sous-répertoires et aux fichiers que ces
154 derniers contiennent.
155 Le même effet peut être obtenu en utilisant les <a href="howto/htaccess.html">fichiers .htaccess</a>.  Par exemple, avec la
156 configuration suivante, l'indexation sera activée pour le répertoire
157 <code>/var/web/dir1</code> et tous ses sous-répertoires.</p>
158
159 <pre class="prettyprint lang-config">&lt;Directory "/var/web/dir1"&gt;
160     Options +Indexes
161 &lt;/Directory&gt;</pre>
162
163
164 <p>Les directives contenues dans une section <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code> s'appliquent à tout fichier
165 avec le nom spécifié, quel que soit le répertoire dans lequel il se trouve.
166 Ainsi par exemple, les directives de configuration suivantes, si elles sont
167 placées dans la section principale du fichier de configuration, vont interdire
168 l'accès à tout fichier nommé <code>private.html</code> quel que soit
169 l'endroit où il se trouve.</p>
170
171 <pre class="prettyprint lang-config">&lt;Files "private.html"&gt;
172     Require all denied
173 &lt;/Files&gt;</pre>
174
175
176 <p>Pour faire référence à des fichiers qui se trouvent en des points
177 particuliers du système de fichiers, les sections
178 <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code> et
179 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>
180 peuvent être combinées.  Par exemple, la configuration suivante va interdire
181 l'accès à <code>/var/web/dir1/private.html</code>,
182 <code>/var/web/dir1/subdir2/private.html</code>,
183 <code>/var/web/dir1/subdir3/private.html</code>, ainsi que toute instance de
184 <code>private.html</code> qui se trouve dans l'arborescence
185 <code>/var/web/dir1/</code>.</p>
186
187 <pre class="prettyprint lang-config">&lt;Directory "/var/web/dir1"&gt;
188     &lt;Files "private.html"&gt;
189         Require all denied
190     &lt;/Files&gt;
191 &lt;/Directory&gt;</pre>
192
193
194
195 <h3><a name="webspace" id="webspace">Conteneurs de l'arborescence du site web</a></h3>
196
197 <p>le conteneur <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>
198 et son équivalent acceptant les
199 <a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, modifient quant à eux la
200 configuration de parties de l'arborescence du site web.  Par exemple, la
201 configuration suivante interdit l'accès à toute URL dont la partie chemin
202 commence par /private.
203 En particulier, l'interdiction s'appliquera aux requêtes pour :
204 <code>http://yoursite.example.com/private</code>,
205 <code>http://yoursite.example.com/private123</code>, et
206 <code>http://yoursite.example.com/private/dir/file.html</code> ainsi qu'à
207 toute requête commençant par la chaîne de caractères <code>/private</code>.</p>
208
209 <pre class="prettyprint lang-config">&lt;LocationMatch "^/private"&gt;
210     Require all denied
211 &lt;/LocationMatch&gt;</pre>
212
213
214 <p>Le conteneur <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>
215 n'a pas besoin de faire référence à un élément du système de fichiers.
216 Par exemple, l'exemple suivant montre comment faire référence à une URL
217 particulière vers un gestionnaire interne du serveur HTTP Apache fourni par le module
218 <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>.
219 Il n'est pas nécessaire de trouver un fichier nommé <code>server-status</code>
220 dans le système de fichiers.</p>
221
222 <pre class="prettyprint lang-config">&lt;Location "/server-status"&gt;
223     SetHandler server-status
224 &lt;/Location&gt;</pre>
225
226
227
228 <h3><a name="overlapping-webspace" id="overlapping-webspace">Espace web imbriqué</a></h3>
229 <p>Pour contrôler deux URLs imbriquées, on doit tenir compte de l'ordre
230 dans lequel certaines sections ou directives sont évaluées. Pour
231 <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>, on doit
232 avoir :</p>
233 <pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
234 &lt;/Location&gt;
235 &lt;Location "/foo/bar"&gt;
236 &lt;/Location&gt;</pre>
237
238 <p>Les directives <code class="directive"><a href="./mod/mod_alias.html#alias">&lt;Alias&gt;</a></code>, quant à elles, sont évaluées vice-versa :</p>
239 <pre class="prettyprint lang-config">Alias "/foo/bar" "/srv/www/uncommon/bar"
240 Alias "/foo" "/srv/www/common/foo"</pre>
241
242 <p>Ceci est aussi vrai pour les directives <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p>
243 <pre class="prettyprint lang-config">ProxyPass "/special-area" "http://special.example.com" smax=5 max=10
244 ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On</pre>
245
246
247
248
249 <h3><a name="wildcards" id="wildcards">Caractères de remplacement
250 et expressions rationnelles</a></h3>
251
252 <p>Les conteneurs
253 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>,
254 <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>, et
255 <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>
256 peuvent utiliser des caractères de remplacement de style shell comme dans
257 la fonction <code>fnmatch</code> de la bibliothèque C standard.
258 Le caractère "*"
259 correspond à toute séquence de caractères, "?" à un caractère seul,
260 et "[<em>seq</em>]" à tout caractère contenu dans <em>seq</em>.
261 Le caractère "/"
262 ne peut pas faire l'objet d'un remplacement;
263 il doit être spécifié explicitement.</p>
264
265 <p>Si une définition des critères de correspondance
266 encore plus souple est nécessaire, chaque conteneur
267 possède son équivalent acceptant les expressions rationnelles : <code class="directive"><a href="./mod/core.html#directorymatch">&lt;DirectoryMatch&gt;</a></code>, <code class="directive"><a href="./mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code>, et <code class="directive"><a href="./mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> acceptent les
268 <a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a> compatibles Perl
269 pour définir les critères de correspondance.  Mais voyez plus loin la section
270 à propos de la combinaison des sections de configuration
271 pour comprendre comment l'utilisation de
272 conteneurs avec des expressions rationnelles va modifier la manière
273 dont les directives sont appliquées.</p>
274
275 <p>Un conteneur qui modifie la configuration de tous les
276 répertoires utilisateurs à l'aide de caractères de remplacement
277 mais sans utiliser
278 les expressions rationnelles pourrait ressembler à ceci :</p>
279
280 <pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html"&gt;
281     Options Indexes
282 &lt;/Directory&gt;</pre>
283
284
285 <p>Avec les conteneurs utilisant les expressions rationnelles,
286 on peut interdire l'accès à de nombreux types de fichiers d'images
287 simultanément :</p>
288 <pre class="prettyprint lang-config">+&lt;FilesMatch "\.(?i:gif|jpe?g|png)$"&gt;
289     Require all denied
290 &lt;/FilesMatch&gt;</pre>
291
292
293 <p>Les expressions rationnelles contenant des <strong>groupes nommés et
294 des références arrières</strong> sont ajoutées à l'environnement avec
295 leur nom en majuscules. Ceci permet de référencer des éléments de
296 chemins de fichiers et d'URLs depuis une <a href="expr.html">expression</a> et au sein de modules comme
297 <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
298
299 <pre class="prettyprint lang-config">&lt;DirectoryMatch "^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)"&gt;
300     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
301 &lt;/DirectoryMatch&gt;</pre>
302
303
304
305
306 <h3><a name="expressions" id="expressions">Expressions booléennes</a></h3>
307 <p>La directive <code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code>
308 permet de modifier la configuration en fonction d'une condition qui peut
309 être définie sous la forme d'une expression booléenne. Dans l'exemple
310 suivant, l'accès est interdit si l'en-tête HTTP Referer ne commence pas
311 par "http://www.example.com/".</p>
312 <pre class="prettyprint lang-config">&lt;If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"&gt;
313     Require all denied
314 &lt;/If&gt;</pre>
315
316
317
318
319 <h3><a name="whichwhen" id="whichwhen">Que faut-il utiliser et quand ?</a></h3>
320
321 <p>Choisir entre des conteneurs de système de fichiers et des conteneurs
322 d'arborescence du site web est vraiment très simple.
323 Pour appliquer des directives à des objets qui résident dans le système de
324 fichiers, utilisez toujours un conteneur <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>.  Pour appliquer des directives à des objets
325 qui ne résident pas dans le système de fichiers (comme une page web générée
326 par une base de données), utilisez un conteneur <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>.</p>
327
328 <p>Il ne faut jamais utiliser un conteneur <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code> pour restreindre l'accès à des
329 objets du système de fichiers, car plusieurs localisations de
330 l'arborescence du site web (URLs) peuvent correspondre à la même localisation
331 du système de fichier, ce qui peut permettre de contourner vos restrictions.
332 Par exemple, imaginez la configuration suivante :</p>
333
334 <pre class="prettyprint lang-config">&lt;Location "/dir/"&gt;
335     Require all denied
336 &lt;/Location&gt;</pre>
337
338
339 <p>Elle fonctionne correctement si la requête appelle
340 <code>http://yoursite.example.com/dir/</code>.  Mais que va-t-il se passer si
341 votre système de fichiers est insensible à la casse ?
342 Votre restriction va pouvoir être tout simplement contournée en envoyant une
343 requête sur
344 <code>http://yoursite.example.com/DIR/</code>.  Le conteneur <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>, quant à lui, s'appliquera
345 à tout contenu servi à partir de cette localisation,
346 sans tenir compte de la manière dont il est appelé.
347 (Les liens du système de fichiers constituent une exception.
348 Le même répertoire peut être placé dans plusieurs parties du système de
349 fichiers en utilisant des liens symboliques.  Le conteneur
350 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> va suivre le
351 lien symbolique sans modifier le nom du chemin.  Par conséquent, pour plus de
352 sécurité, les liens symboliques doivent être désactivés à l'aide de la
353 directive
354 <code class="directive"><a href="./mod/core.html#options">Options</a></code> appropriée.)</p>
355
356 <p>Si vous pensez que vous n'êtes pas concerné par ce problème
357 parceque vous utilisez un système de fichiers sensible à la casse,
358 gardez à l'esprit qu'il y a de nombreuses autres manières pour faire
359 correspondre plusieurs localisations de l'arborescence du site web à la même
360 localisation du système de fichiers.  C'est pourquoi vous devez autant que
361 possible toujours utiliser les conteneurs de système de fichiers.
362 Il y a cependant une exception à cette règle.  Placer des restrictions de
363 configuration dans un conteneur <code>&lt;Location
364 "/"&gt;</code> est tout à fait sans rique car ce conteneur va s'appliquer à
365 toutes les requêtes sans tenir compte de l'URL spécifique.</p>
366
367
368 <h3><a name="nesting" id="nesting">Imbrication des sections</a></h3>
369
370 <p>Certains types de sections peuvent être imbriqués : d'une part, on peut
371 utiliser les sections <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>
372 à l'intérieur des sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>, d'autre part, on peut utiliser les
373 directives <code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code> à l'intérieur
374 des sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>,
375 <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code> et <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code> (mais pas à l'intérieur d'une
376 autre section <code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code>). Les
377 valeurs des expressions rationnelles correspondant aux sections nommées se
378 comportent de manière identique.</p>
379
380 <p>Les sections imbriquées sont fusionnées après les sections
381 non-imbriquées de même type.</p>
382
383
384
385 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
386 <div class="section">
387 <h2><a name="virtualhost" id="virtualhost">Hôtes virtuels</a><a title="Lien permanent" href="#virtualhost" class="permalink">&para;</a></h2>
388
389 <p>Le conteneur <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
390 contient des directives qui s'appliquent à des hôtes spécifiques.
391 Ceci s'avère utile pour servir des hôtes multiples à partir de la même machine,
392 chacun d'entre eux possédant une configuration différente.  Pour de plus amples
393 informations,
394 voir la <a href="vhosts/">Documentation sur les hôtes virtuels</a>.</p>
395 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
396 <div class="section">
397 <h2><a name="proxy" id="proxy">Mandataire</a><a title="Lien permanent" href="#proxy" class="permalink">&para;</a></h2>
398
399 <p>Les conteneurs
400 <code class="directive"><a href="./mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code>
401 et <code class="directive"><a href="./mod/mod_proxy.html#proxymatch">&lt;ProxyMatch&gt;</a></code>
402 appliquent les directives de configuration qu'ils contiennent uniquement aux
403 sites qui correspondent à l'URL spécifiée et auxquels on a
404 accédé via le serveur mandataire du module <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
405 Par exemple, la configuration suivante n'autorisera qu'un sous-ensemble de
406 clients à accéder au site <code>www.example.com</code> en passant par le serveur
407 mandataire :.</p>
408
409 <pre class="prettyprint lang-config">&lt;Proxy http://www.example.com/*&gt;
410     Require host yournetwork.example.com
411 &lt;/Proxy&gt;</pre>
412
413 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
414 <div class="section">
415 <h2><a name="whatwhere" id="whatwhere">Quelles sont les directives autorisées ?</a><a title="Lien permanent" href="#whatwhere" class="permalink">&para;</a></h2>
416
417 <p>Pour déterminer quelles sont les directives autorisées pour tel type de
418 section de configuration, vérifiez le <a href="mod/directive-dict.html#Context">Contexte</a> de la directive.
419 Tout ce qui est autorisé dans les sections
420 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>
421 l'est aussi d'un point de vue syntaxique dans les sections
422 <code class="directive"><a href="./mod/core.html#directorymatch">&lt;DirectoryMatch&gt;</a></code>,
423 <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>,
424 <code class="directive"><a href="./mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code>,
425 <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>,
426 <code class="directive"><a href="./mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>,
427 <code class="directive"><a href="./mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code>,
428 et <code class="directive"><a href="./mod/mod_proxy.html#proxymatch">&lt;ProxyMatch&gt;</a></code>.
429 Il y a cependant quelques exceptions :</p>
430
431 <ul>
432 <li>La directive <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code>
433 ne fonctionne que dans les sections
434 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>.</li>
435
436 <li>Les <code class="directive"><a href="./mod/core.html#options">Options</a></code> <code>FollowSymLinks</code> et
437 <code>SymLinksIfOwnerMatch</code>  ne fonctionnent que dans les sections
438 <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> ou les fichiers
439 <code>.htaccess</code>.</li>
440
441 <li>La directive <code class="directive"><a href="./mod/core.html#options">Options</a></code> ne peut pas être
442 utilisée dans les sections
443 <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code>
444 et <code class="directive"><a href="./mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code>.</li>
445 </ul>
446 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
447 <div class="section">
448 <h2><a name="merging" id="merging">Comment les sections sont combinées entre elles</a><a title="Lien permanent" href="#merging" class="permalink">&para;</a></h2>
449
450 <p>Les sections de configuration sont appliquées dans un ordre très particulier.
451 Il est important de savoir comment cet ordre est défini car il peut avoir
452 des effets importants sur la manière dont les directives de configuration
453 sont interprétées.</p>
454
455     <p>L'ordre dans lequel les sections sont combinées est :</p>
456
457     <ol>
458       <li> Les sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> (à l'exception des
459       expressions rationnelles)
460       et les fichiers <code>.htaccess</code> sont appliqués simultanément (avec
461       la possibilité pour <code>.htaccess</code>, s'il y est autorisé, de
462       prévaloir sur
463       <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>)</li>
464
465       <li>Les sections
466       <code class="directive"><a href="./mod/core.html#directorymatch">&lt;DirectoryMatch&gt;</a></code>
467       (et <code>&lt;Directory ~&gt;</code>)</li>
468
469       <li>Les sections <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</a></code> et <code class="directive"><a href="./mod/core.html#filesmatch">&lt;FilesMatch&gt;</a></code> sont appliquées
470       simultanément</li>
471
472       <li>Les sections
473       <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code>
474       et <code class="directive"><a href="./mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> sont appliquées
475       simultanément</li>
476
477       <li>Les directives <code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code>
478       </li>
479     </ol>
480
481     <p>Quelques remarques importantes :</p>
482     <ul>
483     <li>Mises à part les sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>, dans chaque groupe, les sections sont
484     traitées selon
485     l'ordre dans lequel elles apparaissent dans les fichiers de configuration.
486     Par exemple, une requête pour <em>/foo</em> correspondra à
487     <code>&lt;Location "/foo/bar"&gt;</code> et <code>&lt;Location
488     "/foo"&gt;</code> (dans ce cas le groupe 4) : les deux sections seront
489     évaluées mais selon l'ordre dans lequel elles apparaissent dans le fichier
490     de configuration..</li>
491     <li>Les sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> (groupe 1 ci-dessus)
492     sont traitées dans l'ordre du répertoire le plus court vers le plus long.
493     Par exemple, <code>&lt;Directory "/var/web/dir"&gt;</code> sera
494     traité avant <code>&lt;Directory
495     "/var/web/dir/subdir"&gt;</code>.</li>
496     <li>Si plusieurs sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> s'appliquent au même
497     répertoire, elles sont traitées selon l'ordre dans lequel elles
498     apparaissent dans le fichier de configuration.</li>
499     <li>Les sections de configuration incluses via la directive <code class="directive"><a href="./mod/core.html#include">Include</a></code> sont traitées comme si elles se
500     trouvaient réellement dans le fichier qui les inclut à la position de la
501     directive
502     <code class="directive"><a href="./mod/core.html#include">Include</a></code>.</li>
503     <li>Les sections situées à l'intérieur de sections <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
504     sont appliquées <em>après</em> les sections correspondantes situées en
505     dehors de la définition de l'hôte virtuel, ce qui permet à l'hôte virtuel
506     de prévaloir sur la configuration du serveur principal.</li>
507     <li>Quand la requête est servie par le module <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>,
508     le conteneur <code class="directive"><a href="./mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code>
509     prend la place du conteneur <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> dans l'ordre de traitement.</li>
510     </ul>
511
512         <div class="note"><h3>Note technique</h3>
513         Une séquence <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
514         est réellement traitée juste avant la phase de traduction du nom
515         (où <code>Aliases</code> et <code>DocumentRoots</code>
516       sont utilisés pour faire correspondre les URLs aux noms de fichiers).
517       Les effets de cette séquence disparaissent totalement lorsque
518       la traduction est terminée.
519         </div>
520
521 <h3><a name="relationship-module-configuration" id="relationship-module-configuration">Interactions entre
522 modules et sections de configuration</a></h3>
523     <p>Une question se pose souvent après avoir lu comment les sections de
524     configuration sont fusionnées : comment et quand les directives de modules
525     particuliers comme <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> sont-elles interprétées ? La
526     réponse n'est pas triviale et nécessite un approfondissement. Chaque module
527     httpd gère sa propre configuration, et chacune de ses directives dans
528     httpd.conf définit un élément de configuration dans un contexte particulier.
529     httpd n'exécute pas un commande au moment où elle est lue.</p>
530     <p>A l'exécution, le noyau de httpd parcours les sections de configuration
531     dans l'ordre décrit ci-dessus afin de déterminer lesquelles s'appliquent à
532     la requête courante. Lorsqu'une première section s'applique, elle est
533     considérée comme la configuration courante pour cette requête. Si une
534     section suivante s'applique aussi, chaque module qui possède des directives
535     dans chacune de ces sections a la possibilité de fusionner sa configuration
536     entre ces deux sections. Il en résulte une troisième configuration et le
537     processus de fusion se poursuit jusqu'à ce que toutes les sections de
538     configuration aient été évaluées.</p>
539     <p>Après l'étape précédente, le traitement proprement dit de la requête HTTP
540     peut commencer : chaque module peut effectuer toute tâche qui lui incombe,
541     et pour déterminer de quelle manière dont il doit agir, il peut s'appuyer
542     sur le noyau de httpd pour retrouver sa configuration globale issue de la
543     fusion précédente.</p>
544     <p>Un exemple permet de mieux visualiser l'ensemble du processus. la
545     configuration suivante utilise la directive <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> du module
546     <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> pour définir un en-tête HTTP spécifique. Quelle
547     valeur httpd va-t-il affecter à l'en-tête <code>CustomHeaderName</code> pour
548     une requête vers <code>/example/index.html</code> ?
549     </p>
550     <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
551     Header set CustomHeaderName one
552     &lt;FilesMatch ".*"&gt;
553         Header set CustomHeaderName three
554     &lt;/FilesMatch&gt;
555 &lt;/Directory&gt;
556
557 &lt;Directory "/example"&gt;
558     Header set CustomHeaderName two
559 &lt;/Directory&gt;</pre>
560
561     <ul>
562         <li><code class="directive">Directory</code> "/" s'applique, et une configuration
563         initiale est créée qui définit l'en-tête <code>CustomHeaderName</code>
564         avec la valeur <code>one</code>.</li>
565         <li><code class="directive">Directory</code> "/example" s'applique, et comme
566         <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> spécifie dans son code que
567         la valeur d'un en-tête doit être écrasée si ce dernier est défini à
568         nouveau, une nouvelle configuration est créée qui définit l'en-tête
569         <code>CustomHeaderName</code> avec la valeur <code>two</code>.</li>
570         <li><code class="directive">FilesMatch</code> ".*" s'applique, une nouvelle
571         opportunité de fusion surgit, et l'en-tête <code>CustomHeaderName</code>
572         est défini à la valeur <code>three</code>.</li>
573         <li>Finalement, au cours des étapes suivantes du traitement de la
574         requête HTTP, <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> sera sollicité, et il se
575         basera sur la configuration qui a défini l'en-tête
576         <code>CustomHeaderName</code> à la valeur <code>three</code>.
577         <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> utilise normalement cette configuration pour
578         accomplir sa tâche, à savoir définir des en-têtes HTTP. Cela ne veut
579         cependant pas dire qu'un module ne peut pas effectuer des actions plus
580         complexes comme désactiver des directives car elle ne sont pas
581         nécessaires ou obsolètes, etc...</li>
582     </ul>
583
584     <p>Ceci est aussi vrai pour les fichiers .htaccess car ils possèdent la même
585     priorité que les sections <code class="directive">Directory</code> dans l'ordre de
586     fusion. Il faut bien comprendre que les sections de configuration comme
587     <code class="directive">Directory</code> et <code class="directive">FilesMatch</code> ne
588     sont pas comparables avec les directives spécifiques de modules comme
589     <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> ou <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> car elles agissent à des
590     niveaux différents.
591     </p>
592
593
594 <h3><a name="merge-examples" id="merge-examples">Quelques exemples utiles</a></h3>
595
596 <p>Voici un exemple imaginaire qui montre l'ordre de combinaison des sections.
597 En supposant qu'elles s'appliquent toutes à la requête, les directives de
598 cet exemple seront appliquées dans l'ordre suivant : A &gt; B &gt; C &gt; D &gt;
599 E.</p>
600
601 <pre class="prettyprint lang-config">&lt;Location "/"&gt;
602     E
603 &lt;/Location&gt;
604
605 &lt;Files "f.html"&gt;
606     D
607 &lt;/Files&gt;
608
609 &lt;VirtualHost *&gt;
610    &lt;Directory "/a/"&gt;
611         B
612    &lt;/Directory&gt;
613 &lt;/VirtualHost&gt;
614
615 &lt;DirectoryMatch "^.*b$"&gt;
616     C
617 &lt;/DirectoryMatch&gt;
618
619 &lt;Directory "/a/b"&gt;
620     A
621 &lt;/Directory&gt;</pre>
622
623
624 <p>Pour un exemple plus concret, considérez ce qui suit.  Sans tenir compte
625 de toute restriction d'accès placée dans les sections <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>, la section <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code> sera
626 évaluée en dernier et permettra un accès au serveur sans aucune restriction.
627 En d'autres termes, l'ordre de la combinaison des sections est important,
628 soyez donc prudent !</p>
629
630 <pre class="prettyprint lang-config">&lt;Location "/"&gt;
631     Require all granted
632 &lt;/Location&gt;
633
634 # Arrghs!  Cette section &lt;Directory&gt; n'aura aucun effet
635 &lt;Directory "/"&gt;
636     &lt;RequireAll&gt;
637         Require all granted
638         Require not host badguy.example.com
639     &lt;/RequireAll&gt;
640 &lt;/Directory&gt;</pre>
641
642
643
644
645 </div></div>
646 <div class="bottomlang">
647 <p><span>Langues Disponibles: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
648 <a href="./fr/sections.html" title="Français">&nbsp;fr&nbsp;</a> |
649 <a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
650 <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
651 <a href="./tr/sections.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
652 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
653 <script type="text/javascript"><!--//--><![CDATA[//><!--
654 var comments_shortname = 'httpd';
655 var comments_identifier = 'http://httpd.apache.org/docs/trunk/sections.html';
656 (function(w, d) {
657     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
658         d.write('<div id="comments_thread"><\/div>');
659         var s = d.createElement('script');
660         s.type = 'text/javascript';
661         s.async = true;
662         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
663         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
664     }
665     else {
666         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
667     }
668 })(window, document);
669 //--><!]]></script></div><div id="footer">
670 <p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
671 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
672 if (typeof(prettyPrint) !== 'undefined') {
673     prettyPrint();
674 }
675 //--><!]]></script>
676 </body></html>