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