<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_dir - Serveur Apache HTTP Version 2.4</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> <script src="../style/scripts/prettify.min.js" type="text/javascript"> </script> <link href="../images/favicon.ico" rel="shortcut icon" /></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> <p class="apache">Serveur Apache HTTP Version 2.4</p> <img alt="" src="../images/feather.png" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Module Apache mod_dir</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_dir.html" title="Français"> fr </a> | <a href="../ja/mod/mod_dir.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_dir.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/mod/mod_dir.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>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</td></tr> <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>dir_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_dir.c</td></tr></table> <h3>Sommaire</h3> <p>L'index d'un répertoire peut provenir de deux sources :</p> <ul> <li>Un fichier écrit par l'utilisateur, dont le nom, en général appelé <code>index.html</code>, peut être défini à l'aide de la directive <code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> fournie par le module <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code>.</li> <li>Un listing généré par le serveur, par l'intermédiaire du module <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>.</li> </ul> <p>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.</p> <p>Une redirection "slash de fin" est effectuée lorsque le serveur reçoit une requête pour une URL du style <code>http://nom-serveur/foo/nom-rep</code> où <code>nom-rep</code> est le nom d'un répertoire. Comme les répertoires nécessitent un slash de fin, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> effectue une redirection vers <code>http://nom-serveur/foo/nom-rep/</code>.</p> </div> <div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#directorycheckhandler">DirectoryCheckHandler</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#directoryindex">DirectoryIndex</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#directoryindexredirect">DirectoryIndexRedirect</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#directoryslash">DirectorySlash</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li> </ul> <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_dir">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_dir">Signaler un bug</a></li></ul><h3>Voir aussi</h3> <ul class="seealso"> <li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="directorycheckhandler" id="directorycheckhandler">Directive</a> <a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la réponse de ce module lorsqu'un autre gestionnaire est utilisé</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DirectoryCheckHandler On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DirectoryCheckHandler Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>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é.</td></tr> </table> <p>La directive <code class="directive">DirectoryCheckHandler</code> permet de faire en sorte que <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> 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 <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> ou par d'autres modules tels que <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> au cours des substitutions de niveau répertoire.</p> <p>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 <code class="directive">SetHandler</code> avait été définie pour un répertoire entier, mais pouvait aussi être à l'origine de conflits avec d'autres modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="directoryindex" id="directoryindex">Directive</a> <a name="DirectoryIndex" id="DirectoryIndex">DirectoryIndex</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liste des fichiers ressources à rechercher lorsque le client envoie une requête pour un répertoire</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DirectoryIndex disabled | <var>url locale</var> [<var>url locale</var>] ...</code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DirectoryIndex index.html</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr> </table> <p>La directive <code class="directive">DirectoryIndex</code> 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. <var>url locale</var> 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 <code>Indexes</code> est définie, le serveur générera son propre listing du répertoire.</p> <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">DirectoryIndex index.html</pre> </div> <p>Avec cette configuration, une requête pour l'URL <code>http://example.com/docs/</code> renverrait au client la ressource <code>http://example.com/docs/index.html</code> si elle existe, ou provoquerait la génération du listing du répertoire si la ressource n'existe pas.</p> <p>Notez qu'il n'est pas nécessaire que les documents soient relatifs au répertoire ;</p> <pre class="prettyprint lang-config">DirectoryIndex index.html index.txt /cgi-bin/index.pl</pre> <p>provoquerait l'exécution du script CGI <code>/cgi-bin/index.pl</code> si aucun des fichiers <code>index.html</code> ou <code>index.txt</code> n'existe dans le répertoire considéré.</p> <p>La spécification du seul argument "disabled" empêche <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> 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".</p> <p><strong>Note:</strong> Positionner plusieurs directives <code class="directive">DirectoryIndex</code> au coeur du <a href="../sections.html"><em>même context</em></a> complète la liste des ressources et ne l'écrase pas : </p> <pre class="prettyprint lang-config"># 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></pre> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="directoryindexredirect" id="directoryindexredirect">Directive</a> <a name="DirectoryIndexRedirect" id="DirectoryIndexRedirect">DirectoryIndexRedirect</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une redirection externe pour les index de répertoires. </td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DirectoryIndexRedirect on | off | permanent | temp | seeother | <var>3xx-code</var> </code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DirectoryIndexRedirect off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.14</td></tr> </table> <p>Par défaut, c'est la page définie par la directive <code class="directive">DirectoryIndex</code> qui est sélectionnée et renvoyée de manière transparente au client. La directive <code class="directive">DirectoryIndexRedirect</code> permet de rediriger le client via une redirection de type 3xx.</p> <p>Les arguments acceptés sont :</p> <ul> <li><code>on</code> : envoie une redirection 302 vers l'index choisi.</li> <li><code>off</code> : n'envoie aucune redirection. Il s'agit du comportement historique de mod_dir.</li> <li><code>permanent</code> : envoie une redirection 301 (permanent) vers l'index choisi.</li> <li><code>temp</code> : ceci est équivalent à <code>on</code></li> <li><code>seeother</code> : envoie une redirection 303 (également appelée "See Other") vers l'index choisi.</li> <li><var>3xx-code</var> : envoie une redirection accompagnée du code 3xx choisi.</li> </ul> <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">DirectoryIndexRedirect on</pre> </div> <p>Une requête pour <code>http://example.com/docs/</code> se solderait par une redirection temporaire vers <code>http://example.com/docs/index.html</code> si cette ressource existe.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="directoryslash" id="directoryslash">Directive</a> <a name="DirectorySlash" id="DirectorySlash">DirectorySlash</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Activation/Désactivation de la redirection "slash de fin"</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DirectorySlash On|Off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DirectorySlash On</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr> </table> <p>La directive <code class="directive">DirectorySlash</code> permet de déterminer si <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> doit corriger ou non les URLs pointant vers un répertoire.</p> <p>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, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> le redirige vers la même ressource, mais <em>en ajoutant</em> un slash de fin, et ceci pour plusieurs bonnes raisons :</p> <ul> <li>La requête de l'utilisateur contiendra finalement l'URL canonique de la ressource</li> <li><code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> fonctionnera correctement. Comme il n'indique pas le chemin dans le lien, le chemin de l'URL serait incorrect.</li> <li>La directive <code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> n'est évaluée <em>que</em> pour les répertoires se terminant par un slash.</li> <li>Les références à des URLs relatives dans les pages html fonctionneront alors correctement.</li> </ul> <p>Si vous ne souhaitez pas voir ces effets, <em>et</em> 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é.</p> <pre class="prettyprint lang-config"># voir l'avertissement de sécurité ci-dessous ! <Location "/some/path"> DirectorySlash Off SetHandler some-handler </Location></pre> <div class="warning"><h3>Avertissement de sécurité</h3> <p>La désactivation de la redirection "slash de fin" peut entraîner la divulgation d'informations. Considérons la situation où <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> est actif (<code>Options +Indexes</code>), où la directive <code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> a pour valeur une ressource valide (par exemple <code>index.html</code>), 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 <code>index.html</code> ; <strong>par contre, une requête sans slash de fin afficherait un listing du contenu du répertoire</strong>.</p> </div> <p>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.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="fallbackresource" id="fallbackresource">Directive</a> <a name="FallbackResource" id="FallbackResource">FallbackResource</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une URL par défaut pour les requêtes qui ne ciblent aucun fichier</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FallbackResource disabled | <var>url-locale</var></code></td></tr> <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>disabled - httpd renvoie un code d'erreur 404 (Not Found)</code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr> <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'argument <code>disabled</code> est disponible à partir de la version 2.4.4 du serveur HTTP Apache.</td></tr> </table> <p>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</p> <pre class="prettyprint lang-config">FallbackResource /not-404.php</pre> <p>fait en sorte que les requêtes ne correspondant à aucun fichier soient traitées par <code>non-404.php</code>, sans affecter les requêtes pour des fichiers existants.</p> <p>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'.</p> <p>Dans les versions plus anciennes de httpd, cet effet nécessitait en général <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, et l'utilisation des tests conditionnels <code>-f</code> et <code>-d</code> pour vérifier l'existence des fichiers et répertoires. Maintenant, une seule ligne de configuration est nécessaire.</p> <pre class="prettyprint lang-config">FallbackResource /index.php</pre> <p>Les fichiers existants comme des images, des fichiers css, etc... seront traités normalement.</p> <p>L'argument <code>disabled</code> permet de désactiver cette fonctionnalité dans le cas où l'héritage d'un répertoire parent n'est pas souhaité.</p> <p>Pour un URI intermédiaire tel que <em>http://example.com/blog/</em>, cet URI intermédiaire doit être spécifié en tant que <var>url-locale</var> :</p> <pre class="prettyprint lang-config"><Directory "/web/example.com/htdocs/blog"> FallbackResource /blog/index.php </Directory> <Directory "/web/example.com/htdocs/blog/images"> FallbackResource disabled </Directory></pre> </div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_dir.html" title="Français"> fr </a> | <a href="../ja/mod/mod_dir.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_dir.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/mod/mod_dir.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_dir.html'; (function(w, d) { if (w.location.hostname.toLowerCase() == "httpd.apache.org") { d.write('<div id="comments_thread"><\/div>'); var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); } else { d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); } })(window, document); //--><!]]></script></div><div id="footer"> <p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } //--><!]]></script> </body></html>