mirror of
https://github.com/apache/httpd.git
synced 2025-05-30 01:07:09 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420990 13f79535-47bb-0310-9956-ffa450edef68
155 lines
6.2 KiB
XML
155 lines
6.2 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_dir.xml.meta">
|
|
<name>mod_dir</name>
|
|
<description>Provides for "trailing slash" redirects and
|
|
serving directory index files</description>
|
|
<status>Base</status>
|
|
<sourcefile>mod_dir.c</sourcefile>
|
|
<identifier>dir_module</identifier>
|
|
|
|
<summary>
|
|
<p>The index of a directory can come from one of two sources:</p>
|
|
|
|
<ul>
|
|
<li>A file written by the user, typically called
|
|
<code>index.html</code>. The <directive module="mod_dir"
|
|
>DirectoryIndex</directive> directive sets the
|
|
name of this file. This is controlled by
|
|
<module>mod_dir</module>.</li>
|
|
|
|
<li>Otherwise, a listing generated by the server. This is
|
|
provided by <module>mod_autoindex</module>.</li>
|
|
</ul>
|
|
<p>The two functions are separated so that you can completely
|
|
remove (or replace) automatic index generation should you want
|
|
to.</p>
|
|
|
|
<p>A "trailing slash" redirect is issued when the server
|
|
receives a request for a URL
|
|
<code>http://servername/foo/dirname</code> where
|
|
<code>dirname</code> is a directory. Directories require a
|
|
trailing slash, so <module>mod_dir</module> issues a redirect to
|
|
<code>http://servername/foo/dirname/</code>.</p>
|
|
</summary>
|
|
|
|
<directivesynopsis>
|
|
<name>DirectoryIndex</name>
|
|
<description>List of resources to look for when the client requests
|
|
a directory</description>
|
|
<syntax>DirectoryIndex
|
|
<var>local-url</var> [<var>local-url</var>] ...</syntax>
|
|
<default>DirectoryIndex index.html</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
<context>directory</context><context>.htaccess</context></contextlist>
|
|
<override>Indexes</override>
|
|
|
|
<usage>
|
|
<p>The <directive>DirectoryIndex</directive> directive sets the
|
|
list of resources to look for, when the client requests an index
|
|
of the directory by specifying a / at the end of the directory
|
|
name. <var>Local-url</var> is the (%-encoded) URL of a document on
|
|
the server relative to the requested directory; it is usually the
|
|
name of a file in the directory. Several URLs may be given, in
|
|
which case the server will return the first one that it finds. If
|
|
none of the resources exist and the <code>Indexes</code> option is
|
|
set, the server will generate its own listing of the
|
|
directory.</p>
|
|
|
|
<example><title>Example</title>
|
|
DirectoryIndex index.html
|
|
</example>
|
|
|
|
<p>then a request for <code>http://myserver/docs/</code> would
|
|
return <code>http://myserver/docs/index.html</code> if it
|
|
exists, or would list the directory if it did not.</p>
|
|
|
|
<p>Note that the documents do not need to be relative to the
|
|
directory;</p>
|
|
|
|
<example>
|
|
DirectoryIndex index.html index.txt /cgi-bin/index.pl
|
|
</example>
|
|
|
|
<p>would cause the CGI script <code>/cgi-bin/index.pl</code> to be
|
|
executed if neither <code>index.html</code> or <code>index.txt</code>
|
|
existed in a directory.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>DirectorySlash</name>
|
|
<description>Toggle trailing slash redirects on or off</description>
|
|
<syntax>DirectorySlash On|Off</syntax>
|
|
<default>DirectorySlash On</default>
|
|
<contextlist><context>server config</context><context>virtual host</context>
|
|
<context>directory</context><context>.htaccess</context></contextlist>
|
|
<override>Indexes</override>
|
|
<compatibility>Available in version 2.0.51 and later</compatibility>
|
|
|
|
<usage>
|
|
<p>The <directive>DirectorySlash</directive> directive determines, whether
|
|
<module>mod_dir</module> should fixup URLs pointing to a directory or
|
|
not.</p>
|
|
|
|
<p>Typically if a user requests a resource without a trailing slash, which
|
|
points to a directory, <module>mod_dir</module> redirects him to the same
|
|
resource, but <em>with</em> trailing slash for some good reasons:</p>
|
|
|
|
<ul>
|
|
<li>The user is finally requesting the canonical URL of the resource</li>
|
|
<li><module>mod_autoindex</module> works correctly. Since it doesn't emit
|
|
the path in the link, it would point to the wrong path.</li>
|
|
<li><directive module="mod_dir">DirectoryIndex</directive> will be evaluated
|
|
<em>only</em> for directories requested with trailing slash.</li>
|
|
<li>Relative URL references inside html pages will work correctly.</li>
|
|
</ul>
|
|
|
|
<p>Well, if you don't want this effect <em>and</em> the reasons above don't
|
|
apply to you, you can turn off the redirect with:</p>
|
|
|
|
<example>
|
|
# see security warning below!<br />
|
|
<Location /some/path><br />
|
|
<indent>
|
|
DirectorySlash Off<br />
|
|
SetHandler some-handler<br />
|
|
</indent>
|
|
</Location>
|
|
</example>
|
|
|
|
<note type="warning"><title>Security Warning</title>
|
|
<p>Turning off the trailing slash redirect may result in an information
|
|
disclosure. Consider a situation where <module>mod_autoindex</module> is
|
|
active (<code>Options +Indexes</code>) and <directive module="mod_dir"
|
|
>DirectoryIndex</directive> is set to a valid resource (say,
|
|
<code>index.html</code>) and there's no other special handler defined for
|
|
that URL. In this case a request with a trailing slash would show the
|
|
<code>index.html</code> file. <strong>But a request without trailing slash
|
|
would list the directory contents</strong>.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|