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