L'index d'un répertoire peut provenir de deux sources :
index.html
, peut être défini à l'aide de la
directive Les deux fonctions sont bien distinctes, si bien que vous pouvez supprimer (ou remplacer) la génération automatique d'index, si vous le souhaitez.
Une redirection "slash de fin" est effectuée lorsque le serveur
reçoit une requête pour une URL du style
http://nom-serveur/foo/nom-rep
où nom-rep
est le nom d'un répertoire. Comme les répertoires nécessitent un slash de
fin, http://nom-serveur/foo/nom-rep/
.
La directive Indexes
est définie, le serveur générera son propre
listing du répertoire.
Avec cette configuration, une requête pour l'URL
http://example.com/docs/
renverrait au client la
ressource http://example.com/docs/index.html
si elle
existe, ou provoquerait la génération du listing du répertoire si la
ressource n'existe pas.
Notez qu'il n'est pas nécessaire que les documents soient relatifs au répertoire ;
provoquerait l'exécution du script CGI
/cgi-bin/index.pl
si aucun des fichiers
index.html
ou index.txt
n'existe dans le
répertoire considéré.
La spécification du seul argument "disabled" empêche
Note :La définition de plusieurs directives
Par défaut, c'est la page définie par la directive
Les arguments acceptés sont :
on
: envoie une redirection 302 vers l'index choisi.off
: n'envoie aucune redirection. Il s'agit du comportement historique de mod_dir.permanent
: envoie une redirection 301 (permanent) vers l'index choisi.temp
: ceci est équivalent à on
seeother
: envoie une redirection 303 (également appelée "See Other") vers l'index choisi.Une requête pour http://example.com/docs/
se
solderait par une redirection temporaire vers
http://example.com/docs/index.html
si cette ressource
existe.
La directive
En général, si un utilisateur envoie une requête pour une
ressource sans slash de fin, cette ressource représentant un
répertoire,
Si vous ne souhaitez pas voir ces effets, et si les raisons évoquées ci-dessus ne s'appliquent pas à vous, vous pouvez désactiver la redirection comme indiqué ci-dessous. Gardez cependant à l'esprit que ceci peut avoir des répercutions en matière de sécurité.
La désactivation de la redirection "slash de fin" peut entraîner
la divulgation d'informations. Considérons la situation où
Options
+Indexes
), où la directive index.html
), et où aucun gestionnaire
particulier n'a été défini pour cette URL. Dans ce cas, une requête
avec slash de fin afficherait le contenu du fichier
index.html
; par contre, une requête sans slash
de fin afficherait un listing du contenu du
répertoire.
Notez aussi que certains navigateurs peuvent modifier par erreur des requêtes POST en requêtes GET lors d'une redirection, les données POST étant alors perdues.
disabled
est disponible depuis la
version 2.4.4 du serveur HTTP ApacheCette directive permet de définir un traitement pour toute URL qui ne correspond à aucune ressource de votre système de fichiers, et qui provoquerait sans cela l'envoi d'un code d'erreur HTTP 404 (Not Found). Par exemple
fait en sorte que les requêtes ne correspondant à aucun fichier
soient traitées par non-404.php
, sans affecter les
requêtes pour des fichiers existants.
Il est souvent souhaitable qu'un seul fichier ou ressource traite toutes les requêtes à destination d'un répertoire particulier, sauf pour les requêtes qui correspondent à un fichier ou script existant. On y fait souvent référence sous le terme 'contrôleur frontal'.
Dans les versions plus anciennes de httpd, cet effet nécessitait
en général -f
et -d
pour vérifier
l'existence des fichiers et répertoires. Maintenant, une seule ligne
de configuration est nécessaire.
Les fichiers existants comme des images, des fichiers css, etc... seront traités normalement.
Utilisez l'argument disabled
pour désactiver cette
fonctionnalité si l'héritage d'un répertoire parent n'est pas
souhaité.
Pour un URI intermédiaire tel que http://example.com/blog/, cet URI intermédiaire doit être spécifié en tant que url-locale :
La directive
Dans les versions antérieures à 2.4, ce module ne modifiait pas
son comportement si un autre gestionnaire avait été défini pour
l'URL considérée. Ceci permettait de servir des index de répertoires
même si une directive