[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Comment fonctionnent les sections Directory, Location et File

Les sections <Directory>, <Location> et <Files> ne peuvent contenir que les directives pertinentes dans un contexte de répertoires, d'URL ou de fichiers respectivement. Des fichiers .htaccess pourront être placés en plus dans chaque répertoire to pour appliquer des directives locales à chacun des répertoires. Cette page explique en quoi ces différentes sections sont différentes et comment elles interagissent, c'est à dire comment Apache decide quelles directives appliquer à un répertoire ou une URL particulière.

Directives autorisées dans les sections

Tout ce qui est syntaxiquement admis dans une section <Directory> l'est aussi dans des sections <Location> (sauf des sous-sections <Files>. (Le code ne précise rien dans ce cas, ce qui apparaît comme un bug identifié). Semantiquement cependant, certaines directives n'ont pas réellement de sens dans certains contextes. Un cas notable est la directive AllowOverrides, qui n'a aucune signification dans une section <Location>. De même pour la directive <Files> -- Syntaxiquement, tout passe correctement, mais il reste cependant un aspect sémantique à considérer avant de configurer certaines sections.

Comment les sections sont combinées

L'ordre d'évaluation est :
  1. <Directory> (sauf tout ce qui concerne les expressions régulières) et .htaccess sont évaluées simultanément (.htaccess surchargeant <Directory> le cas échéant)
  2. <DirectoryMatch>, et <Directory> pour ce qui concerne les expressions régulières
  3. <Files> et <FilesMatch> sont ensuite considérées simultanément
  4. <Location> et <LocationMatch> sont enfin considérées simultanément
Sauf dans les sections <Directory>, chaque groupe d'instructions est considéré dans l'ordre où il apparait dans les fichiers de configuration. Les sections <Directory> (groupe 1 ci-dessus) est traité en prenant d'abord les répertoires les plus courts vers les plus longs. Si plusieurs sections <Directory> visent le même répertoire, alors elles sont traitées dans l'ordre d'apparition dans les fichiers de configuration. Ces fichiers de configuration sont lus dans cet ordre : httpd.conf, srm.conf et access.conf. Les parties de configuration incluses via une directive Include seront considérées comme si elles faisaient partie intégrante du fichier qui les contient à l'endroit même de la directive Include.

Les sections situées dans des sur-sections <VirtualHost> sont appliquées après les sections de même cible, mais situées en dehors de tout contexte d'hôte virtuel. Ceci permet à des hôtes virtuels de surcharger la configuration du serveur principal. (Note : ceci ne fonctionne correctement qu'à partir des versions 1.2.2 et 1.3a2. Pour toutes les versions antérieures, les sections à l'intérieur de définitions d'hôtes virtuels étaient appliquées avant celles attribuées au serveur principal).

Notes sur l'utilisation des sections

Les conseils principaux que nous pouvons donner sont :

Une exception notable existe cependant : Notez que modifier un .htaccess pendant la phase de traitement des Location n'a aucun effet dans la mesure où les fichiers .htaccess ont déjà été pris en compte.

Autre note:


Apache HTTP Server Version 1.3

Index