github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/mod/mod_dir.html.en (about)

     1  <?xml version="1.0" encoding="ISO-8859-1"?>
     2  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     3  <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
     4  <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>mod_dir - Apache HTTP Server Version 2.2</title>
    11  <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <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" />
    14  <script src="../style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/mod_dir.html" rel="canonical" /></head>
    18  <body>
    19  <div id="page-header">
    20  <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">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
    21  <p class="apache">Apache HTTP Server Version 2.2</p>
    22  <img alt="" src="../images/feather.gif" /></div>
    23  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
    24  <div id="path">
    25  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.2</a> &gt; <a href="./">Modules</a></div>
    26  <div id="page-content">
    27  <div class="retired"><h4>Please note</h4>
    28              <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p>
    29          <p>You may follow <a href="http://httpd.apache.org/docs/current/mod/mod_dir.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache Module mod_dir</h1>
    30  <div class="toplang">
    31  <p><span>Available Languages: </span><a href="../en/mod/mod_dir.html" title="English">&nbsp;en&nbsp;</a> |
    32  <a href="../ja/mod/mod_dir.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
    33  <a href="../ko/mod/mod_dir.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
    34  <a href="../tr/mod/mod_dir.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    35  </div>
    36  <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Provides for "trailing slash" redirects and
    37      serving directory index files</td></tr>
    38  <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Base</td></tr>
    39  <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>dir_module</td></tr>
    40  <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_dir.c</td></tr></table>
    41  <h3>Summary</h3>
    42  
    43      <p>The index of a directory can come from one of two sources:</p>
    44  
    45      <ul>
    46        <li>A file written by the user, typically called
    47        <code>index.html</code>. The <code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> directive sets the
    48        name of this file. This is controlled by
    49        <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code>.</li>
    50  
    51        <li>Otherwise, a listing generated by the server. This is
    52        provided by <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>.</li>
    53      </ul>
    54      <p>The two functions are separated so that you can completely
    55      remove (or replace) automatic index generation should you want
    56      to.</p>
    57  
    58      <p>A "trailing slash" redirect is issued when the server
    59      receives a request for a URL
    60      <code>http://servername/foo/dirname</code> where
    61      <code>dirname</code> is a directory. Directories require a
    62      trailing slash, so <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> issues a redirect to
    63      <code>http://servername/foo/dirname/</code>.</p>
    64  </div>
    65  <div id="quickview"><h3 class="directives">Directives</h3>
    66  <ul id="toc">
    67  <li><img alt="" src="../images/down.gif" /> <a href="#directoryindex">DirectoryIndex</a></li>
    68  <li><img alt="" src="../images/down.gif" /> <a href="#directoryslash">DirectorySlash</a></li>
    69  <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
    70  </ul>
    71  <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
    72  
    73  <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
    74  <div class="directive-section"><h2><a name="DirectoryIndex" id="DirectoryIndex">DirectoryIndex</a> <a name="directoryindex" id="directoryindex">Directive</a></h2>
    75  <table class="directive">
    76  <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>List of resources to look for when the client requests
    77  a directory</td></tr>
    78  <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DirectoryIndex
    79      <var>local-url</var> [<var>local-url</var>] ...</code></td></tr>
    80  <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DirectoryIndex index.html</code></td></tr>
    81  <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
    82  <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
    83  <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
    84  <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr>
    85  </table>
    86      <p>The <code class="directive">DirectoryIndex</code> directive sets the
    87      list of resources to look for, when the client requests an index
    88      of the directory by specifying a / at the end of the directory
    89      name.  <var>Local-url</var> is the (%-encoded) URL of a document on
    90      the server relative to the requested directory; it is usually the
    91      name of a file in the directory. Several URLs may be given, in
    92      which case the server will return the first one that it finds.  If
    93      none of the resources exist and the <code>Indexes</code> option is
    94      set, the server will generate its own listing of the
    95      directory.</p>
    96  
    97      <div class="example"><h3>Example</h3><p><code>
    98        DirectoryIndex index.html
    99      </code></p></div>
   100  
   101      <p>then a request for <code>http://example.com/docs/</code> would
   102      return <code>http://example.com/docs/index.html</code> if it
   103      exists, or would list the directory if it did not.</p>
   104  
   105      <p>Note that the documents do not need to be relative to the
   106      directory;</p>
   107  
   108      <div class="example"><p><code>
   109        DirectoryIndex index.html index.txt  /cgi-bin/index.pl
   110      </code></p></div>
   111  
   112      <p>would cause the CGI script <code>/cgi-bin/index.pl</code> to be
   113      executed if neither <code>index.html</code> or <code>index.txt</code>
   114      existed in a directory.</p>
   115  
   116      <p><strong>Note:</strong> Multiple <code class="directive">DirectoryIndex</code>
   117      directives within the <a href="../sections.html"><em>same context</em></a> will add
   118      to the list of resources to look for rather than replace:
   119      </p>
   120  
   121      <div class="example"><pre># Example A: Set index.html as an index page, then add index.php to that list as well.
   122  &lt;Directory /foo&gt;
   123      DirectoryIndex index.html
   124      DirectoryIndex index.php
   125  &lt;/Directory&gt;
   126  
   127  # Example B: This is identical to example A, except it's done with a single directive.
   128  &lt;Directory /foo&gt;
   129      DirectoryIndex index.html index.php
   130  &lt;/Directory&gt;</pre></div>
   131  
   132  </div>
   133  <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   134  <div class="directive-section"><h2><a name="DirectorySlash" id="DirectorySlash">DirectorySlash</a> <a name="directoryslash" id="directoryslash">Directive</a></h2>
   135  <table class="directive">
   136  <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Toggle trailing slash redirects on or off</td></tr>
   137  <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DirectorySlash On|Off</code></td></tr>
   138  <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DirectorySlash On</code></td></tr>
   139  <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
   140  <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
   141  <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
   142  <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr>
   143  <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.0.51 and later</td></tr>
   144  </table>
   145      <p>The <code class="directive">DirectorySlash</code> directive determines whether
   146      <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> should fixup URLs pointing to a directory or
   147      not.</p>
   148  
   149      <p>Typically if a user requests a resource without a trailing slash, which
   150      points to a directory, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> redirects him to the same
   151      resource, but <em>with</em> trailing slash for some good reasons:</p>
   152  
   153      <ul>
   154      <li>The user is finally requesting the canonical URL of the resource</li>
   155      <li><code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> works correctly. Since it doesn't emit
   156      the path in the link, it would point to the wrong path.</li>
   157      <li><code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> will be evaluated
   158      <em>only</em> for directories requested with trailing slash.</li>
   159      <li>Relative URL references inside html pages will work correctly.</li>
   160      </ul>
   161  
   162      <p>If you don't want this effect <em>and</em> the reasons above don't
   163      apply to you, you can turn off the redirect as shown below. However,
   164      be aware that there are possible security implications to doing
   165      this.</p>
   166  
   167      <div class="example"><p><code>
   168          # see security warning below!<br />
   169          &lt;Location /some/path&gt;<br />
   170          <span class="indent">
   171              DirectorySlash Off<br />
   172              SetHandler some-handler<br />
   173          </span>
   174          &lt;/Location&gt;
   175      </code></p></div>
   176  
   177      <div class="warning"><h3>Security Warning</h3>
   178      <p>Turning off the trailing slash redirect may result in an information
   179      disclosure. Consider a situation where <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> is
   180      active (<code>Options +Indexes</code>) and <code class="directive"><a href="#directoryindex">DirectoryIndex</a></code> is set to a valid resource (say,
   181      <code>index.html</code>) and there's no other special handler defined for
   182      that URL. In this case a request with a trailing slash would show the
   183      <code>index.html</code> file. <strong>But a request without trailing slash
   184      would list the directory contents</strong>.</p>
   185      </div>
   186  
   187  </div>
   188  <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   189  <div class="directive-section"><h2><a name="FallbackResource" id="FallbackResource">FallbackResource</a> <a name="fallbackresource" id="fallbackresource">Directive</a></h2>
   190  <table class="directive">
   191  <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a default URL for requests that don't map to a file</td></tr>
   192  <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FallbackResource disabled | <var>local-url</var></code></td></tr>
   193  <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>None - httpd will return 404 (Not Found)</code></td></tr>
   194  <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
   195  <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
   196  <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
   197  <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dir</td></tr>
   198  <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.2.16 and later - The <code>disabled</code> argument
   199  is supported since 2.2.24</td></tr>
   200  </table>
   201      <p>Use this to set a handler for any URL that doesn't map to anything
   202      in your filesystem, and would otherwise return HTTP 404 (Not Found).
   203      For example</p>
   204      <div class="example"><p><code>
   205          <code>FallbackResource /not-404.php</code>
   206      </code></p></div>
   207      <p>will cause requests for non-existent files to be handled by
   208      <code>not-404.php</code>, while requests for files that exist
   209      are unaffected.</p>
   210      <p>It is frequently desirable to have a single file or resource
   211      handle all requests to a particular directory, except those requests
   212      that correspond to an existing file or script. This is often
   213      referred to as a 'front controller.'</p>
   214      <p>In earlier versions of httpd, this effect typically required
   215      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, and the use of the <code>-f</code> and
   216      <code>-d</code> tests for file and directory existence. This now
   217      requires only one line of configuration.</p>
   218      <div class="example"><p><code>
   219          <code>FallbackResource /index.php</code>
   220      </code></p></div>
   221      <p>Existing files, such as images, css files, and so on, will be
   222      served normally.</p>
   223      <p>Use the <code>disabled</code> argument to disable that feature
   224      if inheritance from a parent directory is not desired.</p>
   225      <p>In a sub-URI, such as <em>http://example.com/blog/</em> this
   226      <em>sub-URI</em> has to be supplied as <var>local-url</var>:</p>
   227      <div class="example"><p><code>
   228           <code>
   229               &lt;Directory /web/example.com/htdocs/blog&gt;<br />
   230  	     <span class="indent">
   231                    FallbackResource /blog/index.php<br />
   232               </span>
   233               &lt;/Directory&gt;<br />
   234               &lt;Directory /web/example.com/htdocs/blog/images&gt;<br />
   235  	     <span class="indent">
   236                    FallbackResource disabled<br />
   237               </span>
   238               &lt;/Directory&gt;
   239           </code>
   240      </code></p></div>
   241  
   242  </div>
   243  </div>
   244  <div class="bottomlang">
   245  <p><span>Available Languages: </span><a href="../en/mod/mod_dir.html" title="English">&nbsp;en&nbsp;</a> |
   246  <a href="../ja/mod/mod_dir.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
   247  <a href="../ko/mod/mod_dir.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
   248  <a href="../tr/mod/mod_dir.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   249  </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;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>
   250  <script type="text/javascript"><!--//--><![CDATA[//><!--
   251  var comments_shortname = 'httpd';
   252  var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_dir.html';
   253  (function(w, d) {
   254      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   255          d.write('<div id="comments_thread"><\/div>');
   256          var s = d.createElement('script');
   257          s.type = 'text/javascript';
   258          s.async = true;
   259          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   260          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   261      }
   262      else { 
   263          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   264      }
   265  })(window, document);
   266  //--><!]]></script></div><div id="footer">
   267  <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
   268  <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">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   269  if (typeof(prettyPrint) !== 'undefined') {
   270      prettyPrint();
   271  }
   272  //--><!]]></script>
   273  </body></html>