<-
Apache > Serveur HTTP > Documentation > Version 2.4

Sections de configuration

Langues Disponibles:  en  |  fr  |  ja  |  ko  |  tr 

Les directives des fichiers de configuration peuvent s'appliquer au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes, ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de sections de configuration ou les fichiers .htaccess pour modifier la portée des directives de configuration.

Support Apache!

Voir aussi

top

Types de conteneurs de sections de configuration

Il existe deux grands types de conteneurs. La plupart des conteneurs sont évalués pour chaque requête. Les directives qu'ils contiennent s'appliquent seulement aux requêtes qui sont concernées par le conteneur. En revanche, les conteneurs <IfDefine>, <IfModule>, et <IfVersion> sont évalués seulement au démarrage et au redémarrage du serveur. Si leurs conditions sont vérifiées au démarrage, les directives qu'ils contiennent s'appliqueront à toutes les requêtes. Si leurs conditions ne sont pas vérifiées, les directives qu'ils contiennent seront ignorées.

Le conteneur <IfDefine> contient des directives qui ne seront appliquées que si un paramètre approprié a été défini dans la ligne de commande de httpd. Par exemple, avec la configuration suivante, toutes les requêtes seront redirigées vers un autre site si le serveur est démarré en utilisant la ligne de commande : httpd -DClosedForNow:

<IfDefine ClosedForNow>
    Redirect "/" "http://otherserver.example.com/"
</IfDefine>

Le conteneur <IfModule> est similaire; les directives qu'il contient ne s'appliqueront que si un module particulier est disponible au niveau du serveur. Le module doit être soit compilé statiquement dans le serveur, soit dynamiquement et dans ce cas, la ligne LoadModule correspondante doit apparaître plus haut dans le fichier de configuration. Ce conteneur ne doit être utilisé que dans le cas où votre fichier de configuration doit fonctionner indépendamment de la présence ou de l'absence de certains modules. Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer systématiquement, car vous pouvez perdre ainsi de précieux messages d'erreur à propos de modules manquants.

Dans l'exemple suivant, la directive MimeMagicFile ne s'appliquera que si le module mod_mime_magic est disponible.

<IfModule mod_mime_magic.c>
    MimeMagicFile "conf/magic"
</IfModule>

Le conteneur <IfVersion> est similaire aux conteneurs <IfDefine> et <IfModule>; les directives qu'il contient ne s'appliqueront que si une version particulière du serveur s'exécute. Ce conteneur a été conçu pour une utilisation dans les suites de tests et les grands réseaux qui doivent prendre en compte différentes versions et configurations de httpd.

<IfVersion >= 2.4>
    # les directives situées ici ne s'appliquent que si la version 
# est supérieure ou égale à 2.4.0. </IfVersion>

<IfDefine>, <IfModule>, et <IfVersion> peuvent inverser leur test conditionnel en le faisant précéder d'un "!". De plus, ces sections peuvent être imbriquées afin de définir des restrictions plus complexes.

top

Système de fichiers, arborescence du site web et expressions booléennes

Les conteneurs de sections de configuration les plus couramment utilisés sont ceux qui modifient la configuration de points particuliers du système de fichiers ou de l'arborescence du site web. Tout d'abord, il est important de comprendre la différence entre les deux. Le système de fichiers est une vue de vos disques tels qu'ils sont perçus par votre système d'exploitation. Par exemple, avec une installation par défaut, Apache httpd est situé dans /usr/local/apache2 pour le système de fichiers UNIX, ou "c:/Program Files/Apache Group/Apache2" pour le système de fichiers Windows. (Notez que des slashes directs doivent toujours être utilisés comme séparateur de chemin dans les fichiers de configuration d'Apache httpd, même sous Windows.) Quant à l'arborescence du site web, il s'agit d'une vue de votre site tel que présenté par le serveur web et perçue par le client. Ainsi le chemin /dir/ dans l'arborescence du site web correspond au chemin /usr/local/apache2/htdocs/dir/ dans le système de fichiers pour une installation d'Apache httpd par défaut sous UNIX. En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au système de fichiers, car les pages web peuvent être générées dynamiquement à partir de bases de données ou d'autres emplacements.

Conteneurs de système de fichiers

Les conteneurs <Directory> et <Files>, ainsi que leurs équivalents acceptant les expressions rationnelles, appliquent des directives à certaines parties du système de fichiers. Les directives contenues dans une section <Directory> s'appliquent au répertoire précisé, ainsi qu'à tous ses sous-répertoires et aux fichiers que ces derniers contiennent. Le même effet peut être obtenu en utilisant les fichiers .htaccess. Par exemple, avec la configuration suivante, l'indexation sera activée pour le répertoire /var/web/dir1 et tous ses sous-répertoires.

<Directory "/var/web/dir1">
    Options +Indexes
</Directory>

Les directives contenues dans une section <Files> s'appliquent à tout fichier avec le nom spécifié, quel que soit le répertoire dans lequel il se trouve. Ainsi par exemple, les directives de configuration suivantes, si elles sont placées dans la section principale du fichier de configuration, vont interdire l'accès à tout fichier nommé private.html quel que soit l'endroit où il se trouve.

<Files "private.html">
    Require all denied
</Files>