Serveur Apache HTTP Version 2.4
Description: | Permet la redirection des adresses se terminant par un r�pertoire sans slash de fin et la mise � disposition des fichiers index de r�pertoire |
---|---|
Statut: | Base |
Identificateur�de�Module: | dir_module |
Fichier�Source: | mod_dir.c |
L'index d'un r�pertoire peut provenir de deux sources :
index.html
, peut �tre d�fini � l'aide de la
directive DirectoryIndex
fournie par le module mod_dir
.mod_autoindex
.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, mod_dir
effectue une redirection vers
http://nom-serveur/foo/nom-rep/
.
Description: | D�finit la r�ponse de ce module lorsqu'un autre gestionnaire est utilis� |
---|---|
Syntaxe: | DirectoryCheckHandler On|Off |
D�faut: | DirectoryCheckHandler Off |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | Indexes |
Statut: | Base |
Module: | mod_dir |
Compatibilit�: | Disponible depuis la version 2.4.8 du serveur HTTP Apache. Les versions ant�rieures � 2.4 se comportaient implicitement comme si "DirectoryCheckHandler ON" avait �t� sp�cifi�. |
La directive DirectoryCheckHandler
permet
de faire en sorte que mod_dir
recherche un index
de r�pertoire ou ajoute des slashes de fin lorsqu'un autre
gestionnaire � �t� d�fini pour l'URL consid�r�e. Les gestionnaires
peuvent �tre d�finis � via des directives telles que
SetHandler
ou par d'autres
modules tels que mod_rewrite
au cours des
substitutions de niveau r�pertoire.
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 SetHandler
avait �t�
d�finie pour un r�pertoire entier, mais pouvait aussi �tre �
l'origine de conflits avec d'autres modules.
Description: | Liste des fichiers ressources � rechercher lorsque le client envoie une requ�te pour un r�pertoire |
---|---|
Syntaxe: | DirectoryIndex
disabled | url locale [url locale] ... |
D�faut: | DirectoryIndex index.html |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | Indexes |
Statut: | Base |
Module: | mod_dir |
La directive DirectoryIndex
permet de
d�finir une liste de fichiers ressources � rechercher lorsqu'un
client envoie une requ�te pour l'index d'un r�pertoire, en ajoutant
un '/' � la fin du nom de ce dernier. url locale est
l'URL (cod�e avec caract�res '%') d'un document du serveur, relative
au r�pertoire faisant l'objet de la requ�te ; il s'agit en g�n�ral
du nom d'un fichier situ� dans le r�pertoire. Si plusieurs URLs sont
fournies, le serveur renverra la premi�re d'entre elles qui
correspond � une ressource existante. Si aucune ressource ne
correspond � la liste des URLs sp�cifi�es, et si l'option
Indexes
est d�finie, le serveur g�n�rera son propre
listing du r�pertoire.
DirectoryIndex index.html
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 ;
DirectoryIndex index.html index.txt /cgi-bin/index.pl
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
mod_dir
de rechercher un index. Un argument
"disabled" sera interpr�t� de mani�re litt�rale si d'autres
arguments sont pr�sents avant ou apr�s lui, m�me s'ils sont
eux-m�mes des arguments "disabled".
Note: Positionner plusieurs directives DirectoryIndex
au coeur du m�me context compl�te la liste des ressources et ne l'�crase pas :
# Exemple A: Positionner index.html en page d'index, puis ajouter index.php. <Directory /foo> DirectoryIndex index.html DirectoryIndex index.php </Directory> # Exemple B: La m�me chose que l'exemple A, mais r�alis� au moyen d'une seule directive. <Directory /foo> DirectoryIndex index.html index.php </Directory> # Exemple C: Pour remplacer la liste des ressources, il faut d'abord la vider : # Ici, seul index.php restera r�f�renc� comme ressource d'index. <Directory /foo> DirectoryIndex index.html DirectoryIndex disabled DirectoryIndex index.php </Directory>
Description: | D�finit une redirection externe pour les index de r�pertoires. |
---|---|
Syntaxe: | DirectoryIndexRedirect on | off | permanent | temp | seeother |
3xx-code
|
D�faut: | DirectoryIndexRedirect off |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | Indexes |
Statut: | Base |
Module: | mod_dir |
Compatibilit�: | Disponible depuis la version 2.3.14 |
Par d�faut, c'est la page d�finie par la directive
DirectoryIndex
qui est s�lectionn�e et
renvoy�e de mani�re transparente au client. La directive
DirectoryIndexRedirect
permet de rediriger le
client via une redirection de type 3xx.
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.DirectoryIndexRedirect on
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.
Description: | Activation/D�sactivation de la redirection "slash de fin" |
---|---|
Syntaxe: | DirectorySlash On|Off |
D�faut: | DirectorySlash On |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | Indexes |
Statut: | Base |
Module: | mod_dir |
La directive DirectorySlash
permet de
d�terminer si mod_dir
doit corriger ou non les URLs
pointant vers un r�pertoire.
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, mod_dir
le redirige vers la m�me
ressource, mais en ajoutant un slash de fin, et ceci pour
plusieurs bonnes raisons :
mod_autoindex
fonctionnera correctement. Comme
il n'indique pas le chemin dans le lien, le chemin de l'URL serait
incorrect.DirectoryIndex
n'est �valu�e
que pour les r�pertoires se terminant par un slash.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�.
# voir l'avertissement de s�curit� ci-dessous ! <Location /some/path> DirectorySlash Off SetHandler some-handler </Location>
La d�sactivation de la redirection "slash de fin" peut entra�ner
la divulgation d'informations. Consid�rons la situation o�
mod_autoindex
est actif (Options
+Indexes
), o� la directive DirectoryIndex
a pour valeur une ressource valide (par
exemple 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.
Description: | D�finit une URL par d�faut pour les requ�tes qui ne ciblent aucun fichier |
---|---|
Syntaxe: | FallbackResource disabled | url-locale |
D�faut: | disabled - httpd renvoie un code d'erreur 404 (Not Found) |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | Indexes |
Statut: | Base |
Module: | mod_dir |
Compatibilit�: | L'argument disabled est disponible � partir
de la version 2.4.4 du serveur HTTP Apache. |
Cette 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
FallbackResource /not-404.php
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 mod_rewrite
, et l'utilisation des tests
conditionnels -f
et -d
pour v�rifier
l'existence des fichiers et r�pertoires. Maintenant, une seule ligne
de configuration est n�cessaire.
FallbackResource /index.php
Les fichiers existants comme des images, des fichiers css, etc... seront trait�s normalement.
L'argument disabled
permet de d�sactiver cette
fonctionnalit� dans le cas o� 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 :
<Directory /web/example.com/htdocs/blog> FallbackResource /blog/index.php </Directory> <Directory /web/example.com/htdocs/blog/images> FallbackResource disabled </Directory>