The directory sections typically occur in the access.conf file, but they
may appear in any configuration file. <Directory> directives cannot
nest, and cannot appear in a <A HREF="#limit"><Limit></A> section.
-<p><hr>
+<p>
+
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
+
+<hr>
<h2><A name="directorymatch"><DirectoryMatch></A></h2>
<strong>Syntax:</strong> <DirectoryMatch <em>regex</em>> ... </DirectoryMatch> <br>
<p><strong>See Also:</strong>
<a href="#directory"><Directory></a> for a description of how
-regular expressions are mixed in with normal <Directory>s.</p>
+regular expressions are mixed in with normal <Directory>s.
+<br>
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
<hr>
<em>filename</em> does not begin with a <code>/</code> character,
the directory being applied will be prefixed automatically.
-<p> <hr>
+<p>
+
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
+
+<hr>
<h2><A name="filesmatch"><FilesMatch></A></h2>
<strong>Syntax:</strong> <FilesMatch <em>regex</em>>
<p>would match most common Internet graphics formats.</p>
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
+
<hr>
<h2><A name="group">Group directive</A></h2>
allow from .foo.com
</Location>
</pre>
+
+<p>
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
+
<hr>
<h2><a name="locationmatch"><LocationMatch></a></h2>
<p>would match URLs that contained the substring "/extra/data" or
"/special/data".</p>
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
+
<hr>
<H2><A NAME="lockfile">LockFile directive</A></H2>
<strong>See also:</strong>
<a href="../vhosts-in-depth.html">In-depth description of Virtual Host matching</a><br>
<strong>See also:</strong>
-<a href="../bind.html">Setting which addresses and ports Apache uses</a>
+<a href="../bind.html">Setting which addresses and ports Apache uses</a><br>
+<strong>See also</strong>: <a href="../sections.html">How Directory,
+Location and Files sections work</a> for an explanation of how these
+different sections are combined when a request is received
</p>
<!--#include virtual="footer.html" -->
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html><head>
+<title>How Directory, Location and Files sections work</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<!--#include virtual="header.html" -->
+<h1 ALIGN="CENTER">How Directory, Location and Files sections work</h1>
+
+The sections <a
+href="mod/core.html#directory"><code><Directory></code></a>, <a
+href="mod/core.html#location"><code><Location></code></a> and <a
+href="mode/core.html#files"><code><Files></code></a> can contain
+directives which only apply to specified directories, URLs or files
+respectively. Also htaccess files can be used inside a directory to
+apply directives to that directory. This document explains how these
+different sections differ and how they relate to each other when
+Apache decides which directives apply for a particular directory or
+request URL.
+
+<h2>Directives allowed in the sections</h2>
+
+Everything that is syntactically allowed in
+<code><Directory></code> is also allowed in
+<code><Location></code> (except a sub-<code><Files></code>
+section, but the code doesn't test for that, Lars has an open bug
+report on that). Semantically however some things, and the most
+notable is AllowOverrides, make no sense in
+<code><Location></code>. The same for
+<code><Files></code> -- syntactically everything is fine, but
+semantically some things are different.
+
+<h2>How the sections are merged</h2>
+
+The order of merging is:
+
+<ol>
+
+<li>
+
+ <code><Directory></code> (except regular expressions) and
+ .htaccess done simultaneously (with .htaccess overriding
+ <code><Directory></code>)
+
+</li>
+
+<li>
+ <code><DirectoryMatch></code>, and
+ <code><Directory></code> with regular expressions
+
+</li>
+
+ <li><code><Files></code> and <code><FilesMatch></code> done simultaneously
+ </li>
+
+ <li><code><Location></code> and <code><LocationMatch></code> done simultaneously
+ </li>
+
+</ol>
+
+Apart from <code><Directory></code>, each group is processed in
+the order that they appear in the configuration
+files. <code><Directory></code> (group 1 above) is processed in
+the order shortest directory component to longest. If multiple
+<code><Directory></code> sections apply to the same directory
+they they are processed in the configuration file order. The
+configuration files are read in the order httpd.conf, srm.conf and
+access.conf. Configurations included via the <code>Include</code>
+directive will be treated as if they where inside the including file
+at the location of the <code>Include</code> directive.
+
+<p>
+
+Sections inside <code><VirtualHost></code> sections are applied
+<i>after</i> the corresponding sections outside the virtual host
+definition. This allows virtual hosts to override the main server
+configuration. (Note: this only works correctly from 1.2.2 and 1.3a2
+onwards. Before those releases sections inside virtual hosts were
+applied <i>before</i> the main server).
+
+<h2>Notes about using sections</h2>
+
+The general guidelines are:
+
+<p>
+
+<ul>
+<li>
+ If you are attempting to match objects at the filesystem level
+ then you must use <code><Directory></code> and/or
+ <code><Files></code>.
+</li>
+
+<li>
+ If you are attempting to match objects at the URL level then you
+ must use <code><Location></code>
+</li>
+</ul>
+
+But a notable exception is:
+
+<ul>
+<li>
+ proxy control is done via <code><Directory></code>. This is
+ a legacy mistake because the proxy existed prior to
+ <code><Location></code>. A future version of the config
+ language should probably switch this to
+ <code><Location></code>.
+</li>
+</ul>
+
+Note also that modifying .htaccess parsing during Location doesn't do
+anything because .htaccess parsing has already occured.
+
+<p>
+
+Another note:
+<p>
+
+<ul>
+<li>
+ There is actually a
+ <code><Location></code>/<code><LocationMatch></code>
+ sequence performed just before the name translation phase (where
+ <code>Aliases</code> and <code>DocumentRoots</code> are used to
+ map URLs to filenames). The results of this sequence are
+ completely thrown away after the translation has completed.
+</li>
+</ul>
+
+<!--#include virtual="footer.html" -->
+</body></html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html><head>
+<title>How Directory, Location and Files sections work</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<!--#include virtual="header.html" -->
+<h1 ALIGN="CENTER">How Directory, Location and Files sections work</h1>
+
+The sections <a
+href="mod/core.html#directory"><code><Directory></code></a>, <a
+href="mod/core.html#location"><code><Location></code></a> and <a
+href="mode/core.html#files"><code><Files></code></a> can contain
+directives which only apply to specified directories, URLs or files
+respectively. Also htaccess files can be used inside a directory to
+apply directives to that directory. This document explains how these
+different sections differ and how they relate to each other when
+Apache decides which directives apply for a particular directory or
+request URL.
+
+<h2>Directives allowed in the sections</h2>
+
+Everything that is syntactically allowed in
+<code><Directory></code> is also allowed in
+<code><Location></code> (except a sub-<code><Files></code>
+section, but the code doesn't test for that, Lars has an open bug
+report on that). Semantically however some things, and the most
+notable is AllowOverrides, make no sense in
+<code><Location></code>. The same for
+<code><Files></code> -- syntactically everything is fine, but
+semantically some things are different.
+
+<h2>How the sections are merged</h2>
+
+The order of merging is:
+
+<ol>
+
+<li>
+
+ <code><Directory></code> (except regular expressions) and
+ .htaccess done simultaneously (with .htaccess overriding
+ <code><Directory></code>)
+
+</li>
+
+<li>
+ <code><DirectoryMatch></code>, and
+ <code><Directory></code> with regular expressions
+
+</li>
+
+ <li><code><Files></code> and <code><FilesMatch></code> done simultaneously
+ </li>
+
+ <li><code><Location></code> and <code><LocationMatch></code> done simultaneously
+ </li>
+
+</ol>
+
+Apart from <code><Directory></code>, each group is processed in
+the order that they appear in the configuration
+files. <code><Directory></code> (group 1 above) is processed in
+the order shortest directory component to longest. If multiple
+<code><Directory></code> sections apply to the same directory
+they they are processed in the configuration file order. The
+configuration files are read in the order httpd.conf, srm.conf and
+access.conf. Configurations included via the <code>Include</code>
+directive will be treated as if they where inside the including file
+at the location of the <code>Include</code> directive.
+
+<p>
+
+Sections inside <code><VirtualHost></code> sections are applied
+<i>after</i> the corresponding sections outside the virtual host
+definition. This allows virtual hosts to override the main server
+configuration. (Note: this only works correctly from 1.2.2 and 1.3a2
+onwards. Before those releases sections inside virtual hosts were
+applied <i>before</i> the main server).
+
+<h2>Notes about using sections</h2>
+
+The general guidelines are:
+
+<p>
+
+<ul>
+<li>
+ If you are attempting to match objects at the filesystem level
+ then you must use <code><Directory></code> and/or
+ <code><Files></code>.
+</li>
+
+<li>
+ If you are attempting to match objects at the URL level then you
+ must use <code><Location></code>
+</li>
+</ul>
+
+But a notable exception is:
+
+<ul>
+<li>
+ proxy control is done via <code><Directory></code>. This is
+ a legacy mistake because the proxy existed prior to
+ <code><Location></code>. A future version of the config
+ language should probably switch this to
+ <code><Location></code>.
+</li>
+</ul>
+
+Note also that modifying .htaccess parsing during Location doesn't do
+anything because .htaccess parsing has already occured.
+
+<p>
+
+Another note:
+<p>
+
+<ul>
+<li>
+ There is actually a
+ <code><Location></code>/<code><LocationMatch></code>
+ sequence performed just before the name translation phase (where
+ <code>Aliases</code> and <code>DocumentRoots</code> are used to
+ map URLs to filenames). The results of this sequence are
+ completely thrown away after the translation has completed.
+</li>
+</ul>
+
+<!--#include virtual="footer.html" -->
+</body></html>