<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_dir

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

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

Sommaire

L'index d'un r�pertoire peut provenir de deux sources :

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/.

Directives

top

DirectoryIndex Directive

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.

Exemple

      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>
    
top

DirectoryIndexRedirect Directive

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 vers une ressource externe.

Exemple

      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.

top

DirectorySlash Directive

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 :

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>
    

Avertissement de s�curit�

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.

top

FallbackResource Directive

Description:D�finit une URL par d�faut pour les requ�tes qui ne ciblent aucun fichier
Syntaxe:FallbackResource disabled url-locale
D�faut:Aucune - 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>
    

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

top

Commentaires

Notice:
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 mailing lists.