of that directory. Any directive which is allowed in a directory
context may be used. <em>Directory</em> is either the full path to a directory,
or a wild-card string. In a wild-card string, `?' matches any single character,
-and `*' matches any sequences of characters. Example:
+and `*' matches any sequences of characters. As of Apache 1.3, you
+may also use `[]' character ranges like in the shell. Also as of Apache 1.3
+none of the wildcards match a `/' character, which more closely mimics the
+behaviour of Unix shells.
+Example:
<pre>
<Directory /usr/local/httpd/htdocs>
Options Indexes FollowSymLinks
<Directory ~ "^/www/.*/[0-9]{3}">
</pre>
-would match directories in /www/ that consisted of three numbers. In
-Apache 1.3 and later, it is reccomended to use
-<a href="#directorymatch"><DirectoryMatch></a> instead.<p>
+would match directories in /www/ that consisted of three numbers.</p>
-<p>If multiple directory sections match the directory (or its parents) containing
+<p>If multiple (non-regular expression) directory sections match the
+directory (or its parents) containing
a document, then the directives are applied in the order of shortest match
first, interspersed with the directives from the
<A HREF="#accessfilename">.htaccess</A> files. For example, with
</menu>
<P>
+Regular expression directory sections are handled slightly differently
+by Apache 1.2 and 1.3. In Apache 1.2 they are interspersed with the normal
+directory sections and applied in the order they appear in the configuration
+file. They are applied only once, and apply when the shortest match
+possible occurs. In Apache 1.3 regular expressions are not considered
+until after all of the normal sections have been applied. Then all of
+the regular expressions are tested in the order they appeared in the
+configuration file. For example, with
+<blockquote><code>
+<Directory ~ abc$><br>
+... directives here ...<br>
+</Directory><br>
+</code></blockquote>
+Suppose that the filename being accessed is
+<code>/home/abc/public_html/abc/index.html</code>. The server
+considers each of <code>/</code>, <code>/home</code>, <code>/home/abc</code>,
+<code>/home/abc/public_html</code>, and <code>/home/abc/public_html/abc</code>
+in that order. In Apache 1.2, when
+<code>/home/abc</code> is considered, the regular expression will match
+and be applied. In Apache 1.3 the regular expression isn't considered
+at all at that point in the tree. It won't be considered until after
+all normal <Directory>s and <code>.htaccess</code> files have
+been applied. Then the regular expression will
+match on <code>/home/abc/public_html/abc</code> and be applied.
+
+<P>
+
<STRONG>
Note that the default Apache access for <Directory /> is
<SAMP>Allow from All</SAMP>. This means that Apache will serve any file
<p>would match directories in /www/ that consisted of three numbers.</p>
+<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>
+
<hr>
<h2><A NAME="documentroot">DocumentRoot directive</A></h2>