summaryrefslogtreecommitdiffstats
path: root/usr.sbin/httpd/htdocs/manual/mod
diff options
context:
space:
mode:
authorbeck <beck@openbsd.org>1998-03-25 07:08:28 +0000
committerbeck <beck@openbsd.org>1998-03-25 07:08:28 +0000
commitc031d3d96950de940122b79f85411f295db3b7ea (patch)
tree4ef378a704eec86b2cfb6e65b5dd7019a7f125b8 /usr.sbin/httpd/htdocs/manual/mod
parent Make directories for /var/www - your basic www root (diff)
downloadwireguard-openbsd-c031d3d96950de940122b79f85411f295db3b7ea.tar.xz
wireguard-openbsd-c031d3d96950de940122b79f85411f295db3b7ea.zip
Initial import from apache 1.2.6
Diffstat (limited to 'usr.sbin/httpd/htdocs/manual/mod')
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/core.html1462
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/directives.html190
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/footer.html7
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/header.html6
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/index.html116
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_access.html189
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_actions.html98
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_alias.html159
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_asis.html81
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth.html158
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html262
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth_db.html173
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth_dbm.html175
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth_msql.html488
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_browser.html100
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cern_meta.html94
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html187
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cookies.html56
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_digest.html78
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_dir.html380
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_dld.html93
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_env.html105
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_example.html153
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_expires.html198
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_headers.html117
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_imap.html297
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_include.html398
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_info.html86
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_agent.html74
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html114
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html276
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_referer.html101
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_mime.html247
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html160
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html379
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html1231
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_status.html120
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html89
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_usertrack.html100
39 files changed, 8797 insertions, 0 deletions
diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html b/usr.sbin/httpd/htdocs/manual/mod/core.html
new file mode 100644
index 00000000000..27c2a6c00da
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/core.html
@@ -0,0 +1,1462 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache Core Features</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Apache Core Features</h1>
+
+These configuration parameters control the core Apache features, and are
+always available.
+
+
+<ul>
+<li><A HREF="#accessconfig">AccessConfig</A>
+<li><A HREF="#accessfilename">AccessFileName</A>
+<li><A HREF="#addmodule">AddModule</A>
+<li><A HREF="#allowoverride">AllowOverride</A>
+<li><A HREF="#authname">AuthName</A>
+<li><A HREF="#authtype">AuthType</A>
+<li><A HREF="#bindaddress">BindAddress</A>
+<li><A HREF="#clearmodulelist">ClearModuleList</A>
+<li><A HREF="#defaulttype">DefaultType</A>
+<li><A HREF="#directory">&lt;Directory&gt;</A>
+<li><A HREF="#documentroot">DocumentRoot</A>
+<li><A HREF="#errordocument">ErrorDocument</A>
+<li><A HREF="#errorlog">ErrorLog</A>
+<li><A HREF="#files">&lt;Files&gt;</A>
+<li><A HREF="#group">Group</A>
+<li><A HREF="#hostnamelookups">HostNameLookups</A>
+<li><A HREF="#identitycheck">IdentityCheck</A>
+<li><A HREF="#ifmodule">&lt;IfModule&gt;</A>
+<li><A HREF="#keepalive">KeepAlive</A>
+<li><A HREF="#keepalivetimeout">KeepAliveTimeout</A>
+<li><A HREF="#limit">&lt;Limit&gt;</A>
+<li><A HREF="#listen">Listen</A>
+<li><A HREF="#location">&lt;Location&gt;</A>
+<li><A HREF="#lockfile">LockFile</A>
+<li><A HREF="#maxclients">MaxClients</A>
+<li><A HREF="#maxkeepaliverequests">MaxKeepAliveRequests</a>
+<li><A HREF="#maxrequestsperchild">MaxRequestsPerChild</A>
+<li><A HREF="#maxspareservers">MaxSpareServers</A>
+<li><A HREF="#minspareservers">MinSpareServers</A>
+<li><A HREF="#options">Options</A>
+<li><A HREF="#pidfile">PidFile</A>
+<li><A HREF="#port">Port</A>
+<li><A HREF="#require">require</A>
+<li><A HREF="#resourceconfig">ResourceConfig</A>
+<li><A HREF="#rlimitcpu">RLimitCPU</A>
+<li><A HREF="#rlimitmem">RLimitMEM</A>
+<li><A HREF="#rlimitnproc">RLimitNPROC</A>
+<li><A HREF="#satisfy">Satisfy</A>
+<li><A HREF="#scoreboardfile">ScoreBoardFile</A>
+<li><A HREF="#sendbuffersize">SendBufferSize</A>
+<li><A HREF="#serveradmin">ServerAdmin</A>
+<li><A HREF="#serveralias">ServerAlias</A>
+<li><A HREF="#servername">ServerName</A>
+<li><A HREF="#serverpath">ServerPath</A>
+<li><A HREF="#serverroot">ServerRoot</A>
+<li><A HREF="#servertype">ServerType</A>
+<li><A HREF="#startservers">StartServers</A>
+<li><A HREF="#timeout">TimeOut</A>
+<li><A HREF="#user">User</A>
+<li><A HREF="#virtualhost">&lt;VirtualHost&gt;</A>
+</ul>
+<hr>
+
+<A name="accessconfig"><h2>AccessConfig directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AccessConfig} directive&gt; -->
+<strong>Syntax:</strong> AccessConfig <em>filename</em><br>
+<strong>Default:</strong> <code>AccessConfig conf/access.conf</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The server will read this file for more directives after reading the
+<A HREF="#resourceconfig">ResourceConfig</A> file. <em>Filename</em> is
+relative to the <A HREF="#serverroot">ServerRoot</A>.
+This feature can be disabled using:
+<blockquote><code>AccessConfig /dev/null</code></blockquote>
+Historically, this file only contained
+<A HREF="#directory">&lt;Directory&gt;</A> sections; in fact it can now
+contain any server directive allowed in the <em>server config</em> context.
+<p><hr>
+
+<A name="accessfilename"><h2>AccessFileName directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AccessFileName} directive&gt; -->
+<strong>Syntax:</strong> AccessFileName <em>filename</em><br>
+<strong>Default:</strong> <code>AccessFileName .htaccess</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+When returning a document to the client the server looks for an
+access control file with this name in every directory of the path to
+the document, if access control files are enabled for that directory.
+
+For example:
+<blockquote><code>AccessFileName .acl</code></blockquote>
+before returning the document /usr/local/web/index.html, the
+server will read /.acl, /usr/.acl, /usr/local/.acl and /usr/local/web/.acl
+for directives, unless they have been disabled with
+<blockquote><code>
+&lt;Directory /&gt;<br>
+AllowOverride None<br>
+&lt;/Directory&gt;</code></blockquote><p><hr>
+
+<A name="addmodule"><h2>AddModule directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddModule} directive&gt; -->
+<strong>Syntax:</strong> AddModule <em>module module ...</em><br>
+<strong>Context:</strong> server config <br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> AddModule is only available in Apache 1.2 and later<p>
+
+The server can have modules compiled in which are not actively in use.
+This directive can be used to enable the use of those modules. The
+server comes with a pre-loaded list of active modules; this list can
+be cleared with the <A HREF="#clearmodulelist">ClearModuleList</A>
+directive.<p><hr>
+
+<A name="allowoverride"><h2>AllowOverride directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AllowOverride} directive&gt; -->
+<strong>Syntax:</strong> AllowOverride <em>override override ...</em><br>
+<strong>Default:</strong> <code>AllowOverride All</code><br>
+<strong>Context:</strong> directory<br>
+<strong>Status:</strong> core<p>
+
+When the server finds an .htaccess file (as specified by
+<A HREF="#accessfilename">AccessFileName</A>) it needs to know which
+directives declared in that file can override earlier access information.<p>
+
+<em>Override</em> can be set to <code>None</code>, in which case the server
+will not read the file, <code>All</code> in which case the server will
+allow all the directives, or one or more of the following:
+<dl>
+<dt>AuthConfig
+<dd>
+<!--%plaintext &lt;?INDEX {\tt AuthConfig} override&gt; -->
+Allow use of the authorization directives
+(<A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A>,
+<A HREF="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</A>,
+<A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A>,
+<A HREF="#authname">AuthName</A>, <A HREF="#authtype">AuthType</A>,
+<A HREF="mod_auth.html#authuserfile">AuthUserFile</A>,
+<A HREF="#require">require</A>, etc.).
+<dt>FileInfo
+<dd>
+<!--%plaintext &lt;?INDEX {\tt FileInfo} override&gt; -->
+Allow use of the directives controlling document types
+(<A HREF="mod_mime.html#addencoding">AddEncoding</A>,
+<A HREF="mod_mime.html#addlanguage">AddLanguage</A>,
+<A HREF="mod_mime.html#addtype">AddType</A>,
+<A HREF="#defaulttype">DefaultType</A>,
+<A HREF="#errordocument">ErrorDocument</A>,
+<A HREF="mod_negotiation.html#languagepriority">LanguagePriority</A>, etc.).
+<dt>Indexes
+<dd>
+<!--%plaintext &lt;?INDEX {\tt Indexes} override&gt; -->
+Allow use of the directives controlling directory indexing
+(<A HREF="mod_dir.html#adddescription">AddDescription</A>,
+<A HREF="mod_dir.html#addicon">AddIcon</A>,
+<A HREF="mod_dir.html#addiconbyencoding">AddIconByEncoding</A>,
+<A HREF="mod_dir.html#addiconbytype">AddIconByType</A>,
+<A HREF="mod_dir.html#defaulticon">DefaultIcon</A>,
+<A HREF="mod_dir.html#directoryindex">DirectoryIndex</A>,
+<A HREF="mod_dir.html#fancyindexing">FancyIndexing</A>,
+<A HREF="mod_dir.html#headername">HeaderName</A>,
+<A HREF="mod_dir.html#indexignore">IndexIgnore</A>,
+<A HREF="mod_dir.html#indexoptions">IndexOptions</A>,
+<A HREF="mod_dir.html#readmename">ReadmeName</A>, etc.).
+<dt>Limit
+<dd>
+<!--%plaintext &lt;?INDEX {\tt Limit} override&gt; -->
+Allow use of the directives controlling host access (allow, deny and order).
+<dt>Options
+<dd>
+<!--%plaintext &lt;?INDEX {\tt Options} override&gt; -->
+Allow use of the directives controlling specific directory features
+(<A HREF="#options">Options</A> and
+<A HREF="mod_include.html#xbithack">XBitHack</A>).
+</dl><p><hr>
+
+<A name="authname"><h2>AuthName directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthName} directive&gt; -->
+<strong>Syntax:</strong> AuthName <em>auth-domain</em><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> core<p>
+
+This directive sets the name of the authorization realm for a directory.
+This realm is given to the client so that the user knows which username and
+password to send.
+It must be accompanied by <A HREF="#authtype">AuthType</A> and
+<A HREF="#require">require</A> directives, and directives such as
+<A HREF="mod_auth.html#authuserfile">AuthUserFile</A> and
+<A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A> to work.<p><hr>
+
+<A name="authtype"><h2>AuthType directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthType} directive&gt; -->
+<strong>Syntax:</strong> AuthType <em>type</em><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> core<p>
+
+This directive selects the type of user authentication for a directory.
+Only <code>Basic</code> is currently implemented.
+<!--%plaintext &lt;?INDEX {\tt Basic} authentication scheme&gt; -->
+It must be accompanied by <A HREF="#authname">AuthName</A> and
+<A HREF="#require">require</A> directives, and directives such as
+<A HREF="mod_auth.html#authuserfile">AuthUserFile</A> and
+<A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A> to work.<p><hr>
+
+<A name="bindaddress"><h2>BindAddress directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt BindAddress} directive&gt; -->
+<strong>Syntax:</strong> BindAddress <em>saddr</em><br>
+<strong>Default:</strong> <code>BindAddress *</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+A Unix&#174; http server can either listen for connections to every
+IP address of the server machine, or just one IP address of the server
+machine. <em>Saddr</em> can be
+
+<menu>
+<li>*
+<li>An IP address
+<li>A fully-qualified Internet domain name
+</menu>
+If the value is *, then the server will listen for connections on
+every IP address, otherwise it will only listen on the IP address
+specified. <p>
+
+This option can be used as an alternative method for supporting
+<A HREF="../virtual-host.html">virtual hosts</A> instead of using
+<A HREF="#virtualhost">&lt;VirtualHost&gt;</A> sections.
+
+<p><strong>See Also:</strong>
+<a href="../dns-caveats.html">DNS Issues</a><br>
+<strong>See Also:</strong>
+<a href="../bind.html">Setting which addresses and ports Apache uses</a></p>
+
+<hr>
+
+<A name="clearmodulelist"><h2>ClearModuleList directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ClearModuleList} directive&gt; -->
+<strong>Syntax:</strong> ClearModuleList<br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> ClearModuleList is only available in Apache 1.2 and later<p>
+
+The server comes with a built-in list of active modules. This
+directive clears the list. It is assumed that the list will then be
+re-populated using the <A HREF="#addmodule">AddModule</A> directive.<p><hr>
+
+<A name="defaulttype"><h2>DefaultType directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt DefaultType} directive&gt; -->
+<strong>Syntax:</strong> DefaultType <em>mime-type</em><br>
+<strong>Default:</strong> <code>DefaultType text/html</code><br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> core<p>
+
+There will be times when the server is asked to provide a document
+whose type cannot be determined by its MIME types mappings.<p>
+
+The server must inform the client of the content-type of the document, so in
+the event of an unknown type it uses the <CODE>DefaultType</CODE>. For
+example:
+<blockquote><code>DefaultType image/gif</code></blockquote>
+would be appropriate for a directory which contained many gif images
+with filenames missing the .gif extension.<p><hr>
+
+<A name="directory"><h2>&lt;Directory&gt; directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Directory} section directive&gt; -->
+<strong>Syntax:</strong> &lt;Directory <em>directory</em>&gt; ... &lt;/Directory&gt; <br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Core. <p>
+
+&lt;Directory&gt; and &lt;/Directory&gt; are used to enclose a group of
+directives which will apply only to the named directory and sub-directories
+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:
+<pre>
+ &lt;Directory /usr/local/httpd/htdocs&gt;
+ Options Indexes FollowSymLinks
+ &lt;/Directory&gt;
+</pre>
+
+<p><strong>Apache 1.2 and above:</strong>
+Extended regular expressions can also be used, with the addition of the
+<code>~</code> character. For example:</p>
+
+<pre>
+ &lt;Directory ~ &quot;^/www/.*/[0-9]{3}&quot;&gt;
+</pre>
+
+would match directories in /www/ that consisted of three numbers.<p>
+
+<p>If multiple 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
+<blockquote><code>
+&lt;Directory /&gt;<br>
+AllowOverride None<br>
+&lt;/Directory&gt;<br><br>
+&lt;Directory /home/*&gt;<br>
+AllowOverride FileInfo<br>
+&lt;/Directory&gt;</code></blockquote>
+for access to the document <code>/home/web/dir/doc.html</code> the
+steps are:
+<menu>
+<li>Apply directive <code>AllowOverride None</code> (disabling
+<code>.htaccess</code> files).
+<li>Apply directive <code>AllowOverride FileInfo</code> (for directory
+<code>/home/web</code>).
+<li>Apply any FileInfo directives in <code>/home/web/.htaccess</code>
+</menu>
+
+<P>
+<STRONG>
+Note that the default Apache access for &lt;Directory /&gt; is
+<SAMP>Allow from All</SAMP>. This means that Apache will serve any file
+mapped from an URL. It is recommended that you change this with a block
+such as
+</STRONG>
+<PRE>
+ &lt;Directory /&gt;
+ Order Deny,Allow
+ Deny from All
+ &lt;/Directory&gt;
+</PRE>
+<P>
+<STRONG>
+and then override this for directories you <EM>want</EM> accessible.
+See the
+<A
+ HREF="../misc/security_tips.html"
+>Security Tips</A>
+page for more details.
+</STRONG>
+</P>
+
+The directory sections typically occur in the access.conf file, but they
+may appear in any configuration file. &lt;Directory&gt; directives cannot
+nest, and cannot appear in a <A HREF="#limit">&lt;Limit&gt;</A> section.
+<p><hr>
+
+<A NAME="documentroot"><h2>DocumentRoot directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt DocumentRoot} directive&gt; -->
+<strong>Syntax:</strong> DocumentRoot <em>directory-filename</em><br>
+<strong>Default:</strong> <code>DocumentRoot
+/usr/local/etc/httpd/htdocs</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+This directive sets the directory from which httpd will serve files.
+Unless matched by a directive like Alias, the server appends the path
+from the requested URL to the document root to make the path to the
+document. Example:
+<blockquote><code>DocumentRoot /usr/web</code></blockquote>
+then an access to <code>http://www.my.host.com/index.html</code> refers
+to <code>/usr/web/index.html</code>.
+
+<P>There appears to be a bug in mod_dir which causes problems when the
+DocumentRoot has a trailing slash (i.e. "DocumentRoot /usr/web/") so
+please avoid that.
+
+<p><hr>
+
+<A name="errordocument"><h2>ErrorDocument directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ErrorDocument} directive&gt; -->
+<strong>Syntax:</strong> ErrorDocument <em>error-code document</em><br>
+<strong>Context</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Status:</strong> core<br>
+<strong>Override:</strong> FileInfo<br>
+<strong>Compatibility:</strong> The directory and .htaccess contexts
+are only available in Apache 1.1 and later.<p>
+
+In the event of a problem or error, Apache can be configured to do
+one of four things,
+
+<OL>
+<LI>output a simple hardcoded error message
+<LI>output a customized message
+<LI>redirect to a local URL to handle the problem/error
+<LI>redirect to an external URL to handle the problem/error
+</OL>
+
+<P>The first option is the default, while options 2-4 are configured
+using the <CODE>ErrorDocument</CODE> directive, which is followed by
+the HTTP response code and a message or URL.
+
+<P><em>Messages</em> in this context begin with a single quote
+(<code>"</code>), which does not form part of the message itself.
+Apache will sometimes offer additional information regarding the
+problem/error.
+
+<P>URLs can begin with a slash (/) for local URLs, or be a full
+URL which the client can resolve. Examples:
+<blockquote><code>
+ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br>
+ErrorDocument 404 /cgi-bin/bad_urls.pl<br>
+ErrorDocument 401 /subscription_info.html<br>
+ErrorDocument 403 "Sorry can't allow you access today
+</code></blockquote>
+
+<P>Note that when you specify an <CODE>ErrorDocument</CODE> that
+points to a remote URL (ie. anything with a method such as "http" in
+front of it) Apache will send a redirect to the client to tell it
+where to find the document, even if the document ends up being
+on the same server.. This has several implications, the
+most important being that <STRONG>if you use an "ErrorDocument 401"
+directive then it must refer to a local document.</STRONG> This results
+from the nature of the HTTP basic authentication scheme.
+
+<P>See Also: <A HREF="../custom-error.html">documentation of customizable
+responses.</A><p><hr>
+
+<A name="errorlog"><h2>ErrorLog directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ErrorLog} directive&gt; -->
+<strong>Syntax:</strong> ErrorLog <em>filename</em><br>
+<strong>Default:</strong> <code>ErrorLog logs/error_log</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The error log directive sets the name of the file to which the server will log
+any errors it encounters. If the filename does not begin with a slash (/)
+then it is assumed to be relative to the <A HREF="#serverroot">ServerRoot</A>.
+Example:
+<blockquote><code>ErrorLog /dev/null</code></blockquote>
+This effectively turns off error logging.<p>
+
+SECURITY: See the <A HREF="../misc/security_tips.html">security tips</A>
+document for details on why your security could be compromised if
+the directory where logfiles are stored is writable by anyone other
+than the user that starts the server.
+
+<p><hr>
+
+<A name="files"><h2>&lt;Files&gt;</h2></A>
+<strong>Syntax:</strong> &lt;Files <em>filename</em>&gt;
+... &lt;/Files&gt;<br>
+<strong>Context:</strong> server config, virtual host, htaccess<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> only available in Apache
+1.2 and above.<p>
+
+<p>The &lt;Files&gt; directive provides for access control by
+filename. It is comparable to the <a
+href="#directory">&lt;Directory&gt;</a> directive and
+<a href="#location">&lt;Location&gt;</a> directives. It
+should be matched with a &lt;/Files&gt; directive. Directives that
+apply to the filename given should be listed
+within. <code>&lt;Files&gt;</code> sections are processed in the
+order they appear in the configuration file, after the
+&lt;Directory&gt; sections and <code>.htaccess</code> files are
+read, but before &lt;Location&gt; sections.</p>
+
+<p>The <em>filename</em> argument should include a filename, or a
+wild-card string, where `?' matches any single character, and `*' matches any
+sequences of characters. Extended regular expressions can also be used, with the addition of
+the <code>~</code> character. For example:</p>
+
+<pre>
+ &lt;Files ~ &quot;\.(gif|jpe?g|png)$&quot;&gt;
+</pre>
+
+would match most common Internet graphics formats.
+
+<p>Note that unlike <a
+href="#directory"><code>&lt;Directory&gt;</code></a> and <a
+href="#location"><code>&lt;Location&gt;</code></a> sections,
+<code>&lt;Files&gt;</code> sections can be used inside .htaccess
+files. This allows users to control access to their own files, at a
+file-by-file level. When used in an .htaccess file, if the
+<em>filename</em> does not begin with a <code>/</code> character,
+the directory being applied will be prefixed automatically.
+
+<p> <hr>
+
+<A name="group"><h2>Group directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Group} directive&gt; -->
+<strong>Syntax:</strong> Group <em>unix-group</em><br>
+<strong>Default:</strong> <code>Group #-1</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The Group directive sets the group under which the server will answer requests.
+In order to use this directive, the stand-alone server must be run initially
+as root. <em>Unix-group</em> is one of:
+<dl>
+<dt>A group name
+<dd>Refers to the given group by name.
+<dt># followed by a group number.
+<dd>Refers to a group by its number.
+</dl>
+
+It is recommended that you set up a new group specifically for running the
+server. Some admins use user <code>nobody</code>, but this is not always
+possible or desirable.<p>
+
+Note: if you start the server as a non-root user, it will fail to change
+to the specified group, and will instead continue to run as the group of the
+original user. <p>
+
+Special note: Use of this directive in &lt;VirtualHost&gt; requires a
+properly configured <A HREF="../suexec.html">suEXEC wrapper</A>.
+When used inside a &lt;VirtualHost&gt; in this manner, only the group
+that CGIs are run as is affected. Non-CGI requests are still processed
+as the group specified in the main Group directive.<p>
+
+SECURITY: See <A HREF="#user">User</A> for a discussion of the security
+considerations.<p><hr>
+
+<A name="hostnamelookups"><h2>HostNameLookups directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt HostNameLookups} directive&gt; -->
+<strong>Syntax:</strong> HostNameLookups <em>boolean</em><br>
+<strong>Default:</strong> <code>HostNameLookups on</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+This directive enables DNS lookups so that host names can be logged.
+Having this directive set <code>on</code> also enables the use of names
+in &lt;Limit&gt; blocks for access control.<p>
+
+Heavily loaded sites should set this directive <code>off</code>, since DNS
+lookups can take considerable amounts of time. The utility <i>logresolve</i>,
+provided in the <i>/support</i> directory, can be used to look up host names
+from logged IP addresses offline.<p><hr>
+
+<A name="identitycheck"><h2>IdentityCheck directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt IdentityCheck} directive&gt; -->
+<strong>Syntax:</strong> IdentityCheck <em>boolean</em><br>
+<strong>Default:</strong> <code>IdentityCheck off</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+This directive enables RFC1413-compliant logging of the remote user name
+for each connection, where the client machine runs identd or something similar.
+This information is logged in the access log. <em>Boolean</em> is either
+<code>on</code> or <code>off</code>.<p>
+
+The information should not be trusted in any way except for rudimentary usage
+tracking.<p>
+
+Note that this can cause serious latency problems accessing your server
+since every request requires one of these lookups to be performed. When
+firewalls are involved each lookup might possibly fail and add 30 seconds
+of latency to each hit. So in general this is not very useful on public
+servers accessible from the Internet.
+<p><hr>
+
+<A NAME="ifmodule"><H2>&lt;IfModule&gt;</H2></A>
+<b>Syntax:</b> &lt;IfModule [!]<i>module-name</i>&gt; <i>...</i>
+&lt;/IfModule&gt;<br>
+<b>Default:</b> None<br>
+<b>Context:</b> all<br>
+<b>Status:</b> Core
+<strong>Compatibility:</strong> ScriptLog is only available in 1.2 and
+later.<P>
+
+<p>
+
+The &lt;IfModule <i>test</i>&gt;...&lt;/IfModule&gt;
+section is used to mark directives that are conditional. The
+directives within an IfModule section are only
+processed if the <i>test</i> is true. If <i>test</i>
+is false, everything between the start and end markers
+is ignored.<p>
+
+The <i>test</i> in the &lt;IfModule&gt; section directive
+can be one of two forms:
+
+<ul>
+<li><i>module name</i>
+<li>!<i>module name</i>
+</ul>
+
+<p>In the former case, the directives between the start and end markers
+are only processed if the module named <i>module name</i> is compiled
+in to Apache. The second format reverses the test, and only processes
+the directives if <i>module name</i> is <b>not</b> compiled in.
+
+<p>The <i>module name</i> argument is a module name as given as the file
+name of the module, at the time it was compiled. For example,
+<code>mod_rewrite.c</code>.
+
+<p>&lt;IfModule&gt; sections are nest-able, which can be used to implement
+simple multiple-module tests.
+
+<P> <hr>
+
+<h2><a name="keepalive">KeepAlive</a></h2>
+<strong>Syntax: (Apache 1.1)</strong> KeepAlive <em>max-requests</em><br>
+<strong>Default: (Apache 1.1)</strong> <code>KeepAlive 5</code><br>
+<strong>Syntax: (Apache 1.2)</strong> KeepAlive <em>on/off</em><br>
+<strong>Default: (Apache 1.2)</strong> <code>KeepAlive On</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> Core<br>
+<strong>Compatibility:</strong> KeepAlive is only available in Apache
+1.1 and later.<p>
+
+This directive enables
+<a href="../keepalive.html">Keep-Alive</a>
+support.
+
+<p><strong>Apache 1.1</strong>: Set <em>max-requests</em>
+to the maximum number of requests you want Apache to entertain per
+request. A limit is imposed to prevent a client from hogging your
+server resources. Set this to <code>0</code> to disable support.
+
+<p><strong>Apache 1.2 and later</strong>: Set to "On" to enable
+persistent connections, "Off" to disable. See also the <a
+href="#maxkeepaliverequests">MaxKeepAliveRequests</a> directive.</p>
+
+<h2><a name="keepalivetimeout">KeepAliveTimeout</a></h2>
+<strong>Syntax:</strong> KeepAliveTimeout <em>seconds</em><br>
+<strong>Default:</strong> <code>KeepAliveTimeout 15</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> Core<br>
+<strong>Compatibility:</strong> KeepAliveTimeout is only available in Apache
+1.1 and later.<p>
+
+The number of seconds Apache will wait for a subsequent request before
+closing the connection. Once a request has been received, the timeout
+value specified by the <a
+href="#timeout"><code>Timeout</code></a> directive
+applies.
+<hr>
+
+<A name="listen"><h2>Listen</h2></A>
+<strong>Syntax:</strong>
+Listen [<em>IP address</em>:]<em>port number</em><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> Listen is only available in Apache
+1.1 and later.<p>
+
+<p>The Listen directive instructs Apache to listen to more than one IP
+address or port; by default it responds to requests on all IP
+interfaces, but only on the port given by the <a href="#port">Port</a>
+directive.</p>
+
+<p><strong>See Also:</strong>
+<a href="../dns-caveats.html">DNS Issues</a><br>
+<strong>See Also:</strong>
+<a href="../bind.html">Setting which addresses and ports Apache uses</a><br>
+<strong>See Also:</strong>
+<a href="../misc/known_bugs.html#listenbug">Known Bugs</a></p>
+<hr>
+
+<A name="limit"><h2>&lt;Limit&gt; directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Limit} section directive&gt; -->
+<strong>Syntax:</strong>
+ &lt;Limit <em>method method</em> ... &gt; ... &lt;/Limit&gt;<br>
+<strong>Context:</strong> any<br>
+<strong>Status:</strong> core<p>
+
+&lt;Limit&gt; and &lt;/Limit&gt; are used to enclose a group of
+access control directives which will then apply only to the specified
+access methods, where <em>method</em> is any valid HTTP method.
+Any directive except another &lt;Limit&gt; or
+<A HREF="#directory">&lt;Directory&gt;</A> may be used; the majority will be
+unaffected by the &lt;Limit&gt;. Example:
+<blockquote><code>
+&lt;Limit GET POST&gt;<br>
+require valid-user<br>
+&lt;/Limit&gt;</code></blockquote>
+If an access control directive appears outside a &lt;Limit&gt; directive,
+then it applies to all access methods.<p><hr>
+
+<h2><a name="location">&lt;Location&gt;</a></h2>
+
+<strong>Syntax:</strong> &lt;Location <em>URL</em>&gt;
+... &lt;/Location&gt;<br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> Location is only available in Apache
+1.1 and later.<p>
+
+<p>The &lt;Location&gt; directive provides for access control by
+URL. It is comparable to the <a
+href="#directory">&lt;Directory&gt;</a> directive, and
+should be matched with a &lt;/Location&gt; directive. Directives that
+apply to the URL given should be listed
+within. <code>&lt;Location&gt;</code> sections are processed in the
+order they appear in the configuration file, after the
+&lt;Directory&gt; sections and <code>.htaccess</code> files are
+read.</p>
+
+<p>Note that, due to the way HTTP functions, <em>URL prefix</em>
+should, save for proxy requests, be of the form <code>/path/</code>,
+and should not include the <code>http://servername</code>. It doesn't
+necessarily have to protect a directory (it can be an individual
+file, or a number of files), and can include wild-cards. In a wild-card
+string, `?' matches any single character, and `*' matches any
+sequences of characters.
+
+<p><strong>Apache 1.2 and above:</strong>
+Extended regular expressions can also be used, with the addition of
+the
+<code>~</code> character. For example:</p>
+
+<pre>
+ &lt;Location ~ &quot;/(extra|special)/data&quot;&gt;
+</pre>
+
+<p>would match URLs that contained the substring "/extra/data" or
+"/special/data".</p>
+
+<p>The <code>Location</code> functionality is especially useful when
+combined with the <code><a
+href="mod_mime.html#sethandler">SetHandler</a></code> directive. For example, to enable status requests, but allow them only
+from browsers at foo.com, you might use:
+
+<pre>
+ &lt;Location /status&gt;
+ SetHandler server-status
+ order deny,allow
+ deny from all
+ allow from .foo.com
+ &lt;/Location&gt;
+</pre>
+<hr>
+
+<A NAME="lockfile"><H2>LockFile</H2></A>
+<strong>Syntax:</strong> LockFile <em>filename</em><BR>
+<strong>Default:</strong> <code>LockFile logs/accept.lock</code><BR>
+<strong>Context:</strong> server config<BR>
+<strong>Status:</strong> core<P>
+
+The LockFile directive sets the path to the lockfile used when
+Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
+USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be
+left at its default value. The main reason for changing it is if
+the <code>logs</code> directory is NFS mounted, since the lockfile
+should be stored on a local disk if possible. The PID of the main
+server process is automatically appended to the filename.
+
+<P><HR>
+
+<A name="maxclients"><h2>MaxClients</h2></A>
+<!--%plaintext &lt;?INDEX {\tt MaxClients} directive&gt; -->
+<strong>Syntax:</strong> MaxClients <em>number</em><br>
+<strong>Default:</strong> <code>MaxClients 256</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The MaxClients directive sets the limit on the number of simultaneous
+requests that can be supported; not more than this number of child server
+processes will be created.<p><hr>
+
+<A name="maxkeepaliverequests"><h2>MaxKeepAliveRequests</h2></A>
+<strong>Syntax:</strong> MaxKeepAliveRequests <em>number</em><br>
+<strong>Default:</strong> <code>MaxKeepAliveRequests 100</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> Only available in Apache
+1.2 and later.
+
+<p>The MaxKeepAliveRequests directive limits the number of requests
+allowed per connection when <a href="#keepalive">KeepAlive</a> is
+on. If it is set to "<code>0</code>", unlimited requests will be
+allowed. We recommend that this setting be kept to a high value for
+maximum server performance.
+
+<A name="maxrequestsperchild"><h2>MaxRequestsPerChild directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt MaxRequestsPerChild} directive&gt; -->
+<strong>Syntax:</strong> MaxRequestsPerChild <em>number</em><br>
+<strong>Default:</strong> <code>MaxRequestsPerChild 0</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The MaxRequestsPerChild directive sets the limit on the number of requests
+that an individual child server process will handle. After MaxRequestsPerChild
+requests, the child process will die. If MaxRequestsPerChild is 0, then
+the process will never expire.<p>
+
+Setting MaxRequestsPerChild to a non-zero limit has two beneficial effects:
+<ul>
+<li>it limits the amount of memory that process can consume by (accidental)
+memory leakage;
+<li> by giving processes a finite lifetime, it helps reduce the
+number of processes when the server load reduces.
+</ul><p><hr>
+
+<A name="maxspareservers"><h2>MaxSpareServers directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt MaxSpareServers} directive&gt; -->
+<strong>Syntax:</strong> MaxSpareServers <em>number</em><br>
+<strong>Default:</strong> <code>MaxSpareServers 10</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The MaxSpareServers directive sets the desired maximum number of <em>idle</em>
+child server processes. An idle process is one which is not handling
+a request. If there are more than MaxSpareServers idle, then the parent
+process will kill off the excess processes.<p>
+
+Tuning of this parameter should only be necessary on very busy sites.
+Setting this parameter to a large number is almost always a bad idea.<p>
+
+See also <A HREF="#minspareservers">MinSpareServers</A> and
+<A HREF="#startservers">StartServers</A>.<p><hr>
+
+<A name="minspareservers"><h2>MinSpareServers directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
+<strong>Syntax:</strong> MinSpareServers <em>number</em><br>
+<strong>Default:</strong> <code>MinSpareServers 5</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The MinSpareServers directive sets the desired minimum number of <em>idle</em>
+child server processes. An idle process is one which is not handling
+a request. If there are fewer than MinSpareServers idle, then the parent
+process creates new children at a maximum rate of 1 per second.<p>
+
+Tuning of this parameter should only be necessary on very busy sites.
+Setting this parameter to a large number is almost always a bad idea.<p>
+
+See also <A HREF="#maxspareservers">MaxSpareServers</A> and
+<A HREF="#startservers">StartServers</A>.<p><hr>
+
+<A name="options"><h2>Options directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Options} directive&gt; -->
+<strong>Syntax:</strong> Options <em>[+|-]option [+|-]option ...</em><br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Override:</strong> Options<br>
+<strong>Status:</strong> core<p>
+
+The Options directive controls which server features are available in
+a particular directory.
+<p>
+<em>option</em> can be set to <code>None</code>, in which case none of
+the extra features are enabled, or one or more of the following:
+<dl>
+<dt>All
+<dd>All options except for MultiViews.
+<dt>ExecCGI
+<dd>
+<!--%plaintext &lt;?INDEX {\tt ExecCGI} option&gt; -->
+Execution of CGI scripts is permitted.
+<dt>FollowSymLinks
+<dd>
+<!--%plaintext &lt;?INDEX {\tt FollowSymLinks} option&gt; -->
+The server will follow symbolic links in this directory.
+<b>Note</b>: even though the server follows the symlink it does <i>not</i>
+change the pathname used to match against <code>&lt;Directory&gt;</code>
+sections.
+<dt>Includes
+<dd>
+<!--%plaintext &lt;?INDEX {\tt Includes} option&gt; -->
+Server-side includes are permitted.
+<dt>IncludesNOEXEC
+<dd>
+<!--%plaintext &lt;?INDEX {\tt IncludesNOEXEC} option&gt; -->
+Server-side includes are permitted, but the #exec command and
+#include of CGI scripts are disabled.
+<dt>Indexes
+<dd>
+<!--%plaintext &lt;?INDEX {\tt Indexes} option&gt; -->
+If a URL which maps to a directory is requested, and the there is no
+DirectoryIndex (e.g. index.html) in that directory, then the server will
+return a formatted listing of the directory.
+<dt>MultiViews
+<dd>
+<!--%plaintext &lt;?INDEX {\tt MultiViews} option&gt; -->
+<A HREF="../content-negotiation.html">Content negotiated</A> MultiViews are
+allowed.
+<dt>SymLinksIfOwnerMatch
+<dd>
+<!--%plaintext &lt;?INDEX {\tt SymLinksIfOwnerMatch} option&gt; -->
+The server will only follow symbolic links for which the target
+file or directory is owned by the same user id as the link.
+</dl>
+
+Normally, if multiple <code>Options</code> could apply to a directory,
+then the most specific one is taken complete; the options are not
+merged. However if <i>all</i> the options on the <code>Options</code>
+directive are preceded by a + or - symbol, the options are
+merged. Any options preceded by a + are added to the options
+currently in force, and any options preceded by a - are removed from
+the options currently in force. <P>
+
+For example, without any + and - symbols:
+
+<blockquote><code>
+&lt;Directory /web/docs&gt; <br>
+Options Indexes FollowSymLinks<br>
+&lt;/Directory&gt;<br>
+&lt;Directory /web/docs/spec&gt; <br>
+Options Includes<br>
+&lt;/Directory&gt;
+</code></blockquote>
+then only <code>Includes</code> will be set for the /web/docs/spec
+directory. However if the second <code>Options</code> directive uses the +
+and - symbols:<p>
+
+<blockquote><code>
+&lt;Directory /web/docs&gt; <br>
+Options Indexes FollowSymLinks<br>
+&lt;/Directory&gt;<br>
+&lt;Directory /web/docs/spec&gt; <br>
+Options +Includes -Indexes<br>
+&lt;/Directory&gt;
+</code></blockquote>
+then the options <code>FollowSymLinks</code> and <code>Includes</code>
+are set for the /web/docs/spec directory.
+<hr>
+
+<A name="pidfile"><h2>PidFile directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt PidFile} directive&gt; -->
+<strong>Syntax:</strong> PidFile <em>filename</em><br>
+<strong>Default:</strong> <code>PidFile logs/httpd.pid</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The PidFile directive sets the file to which the server records the
+process id of the daemon. If the filename does not begin with a slash (/)
+then it is assumed to be relative to the <A HREF="#serverroot">ServerRoot</A>.
+The PidFile is only used in <A HREF="#servertype">standalone</A> mode.<p>
+
+It is often useful to be able to send the server a signal, so that it closes
+and then reopens its <A HREF="#errorlog">ErrorLog</A> and TransferLog, and
+re-reads its configuration files. This is done by sending a SIGHUP (kill -1)
+signal to the process id listed in the PidFile.<p>
+
+The PidFile is subject to the same warnings about log file placement and
+<a href="../misc/security_tips.html">security</a>.
+
+<p><hr>
+
+<A name="port"><h2>Port directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Port} directive&gt; -->
+<strong>Syntax:</strong> Port <em>number</em><br>
+<strong>Default:</strong> <code>Port 80</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+<em>Number</em> is a number from 0 to 65535; some port numbers (especially below
+1024) are reserved for particular protocols. See <code>/etc/services</code>
+for a list of some defined ports; the standard port for the http protocol
+is 80.<p>
+
+The Port directive has two behaviors, the first of which is necessary for
+NCSA backwards compatibility (and which is confusing in the context of
+Apache).<p>
+
+<ul>
+<li>
+In the absence of any <a href="#listen">Listen</a> or
+<a href="#bindaddress">BindAddress</a> directives specifying a port number,
+the Port directive sets the network port on which the server listens.
+If there are any Listen or BindAddress directives specifying
+<code>:number</code> then Port has no effect on what address the server
+listens at.
+
+<li>The Port directive
+sets the <code>SERVER_PORT</code> environment variable (for
+<a href="mod_cgi.html">CGI</a> and <a href="mod_include.html">SSI</a>),
+and is used when the server must generate a URL that refers to itself
+(for example when creating an external redirect to itself).
+</ul>
+
+In no event does a Port setting affect
+what ports a <a href="#virtualhost">VirtualHost</a> responds on, the
+VirtualHost directive itself is used for that.<p>
+
+The primary behaviour of Port should be considered to be similar to that of
+the <a href="#servername">ServerName</a> directive. The ServerName
+and Port together specify what you consider to be the <i>canonical</i>
+address of the server.<p>
+
+Port 80 is one of Unix's special ports. All ports numbered
+below 1024 are reserved for system use, i.e. regular (non-root) users cannot
+make use of them; instead they can only use higher port numbers.
+To use port 80, you must start the server from the root account.
+After binding to the port and before accepting requests, Apache will change
+to a low privileged user as set by the <A HREF="#user">User directive</A>.<p>
+
+If you cannot use port 80, choose any other unused port. Non-root users
+will have to choose a port number higher than 1023, such as 8000.<p>
+
+SECURITY: if you do start the server as root, be sure
+not to set <A HREF="#user">User</A> to root. If you run the server as
+root whilst handling connections, your site may be open to a major security
+attack.<p><hr>
+
+<A name="require"><h2>require directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt require} directive&gt; -->
+<strong>Syntax:</strong> require <em>entity-name entity entity...</em><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> core<p>
+
+This directive selects which authenticated users can access a directory.
+The allowed syntaxes are:
+<ul>
+<li>require user <em>userid userid ...</em><p>
+Only the named users can access the directory.<p>
+<li>require group <em>group-name group-name ...</em><p>
+Only users in the named groups can access the directory.<p>
+<li>require valid-user<p>
+All valid users can access the directory.
+</ul>
+<p>
+If <code>require</code> appears in a <A HREF="#limit">&lt;Limit&gt;</A>
+section, then it restricts access to the named methods, otherwise
+it restricts access for all methods. Example:
+<blockquote><code>
+AuthType Basic<br>
+AuthName somedomain<br>
+AuthUserFile /web/users<br>
+AuthGroupFile /web/groups<br>
+&lt;Limit GET POST&gt;<br>
+require group admin<br>
+&lt;/Limit&gt;
+</code></blockquote>
+
+Require must be accompanied by <A HREF="#authname">AuthName</A> and
+<A HREF="#authtype">AuthType</A> directives, and directives such as
+<A HREF="mod_auth.html#authuserfile">AuthUserFile</A> and
+<A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A> (to define users and
+groups) in order to work correctly.<p><hr>
+
+<A name="resourceconfig"><h2>ResourceConfig directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ResourceConfig} directive&gt; -->
+<strong>Syntax:</strong> ResourceConfig <em>filename</em><br>
+<strong>Default:</strong> <code>ResourceConfig conf/srm.conf</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The server will read this file for more directives after reading the
+httpd.conf file. <em>Filename</em> is relative to the
+<A HREF="#serverroot">ServerRoot</A>.
+This feature can be disabled using:
+<blockquote><code>ResourceConfig /dev/null</code></blockquote>
+Historically, this file contained most directives except for server
+configuration directives and <A HREF="#directory">&lt;Directory&gt;</A>
+sections; in fact it can now contain any server directive allowed in the
+<em>server config</em> context.<p>
+
+See also <A HREF="#accessconfig">AccessConfig</A>.<p><hr>
+
+<A name="rlimit"> </A>
+<A name="rlimitcpu"><h2>RLimitCPU directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt RLimitCPU} directive&gt; -->
+<strong>Syntax:</strong> RLimitCPU <em># or 'max'</em> <em>[# or 'max']</em><br>
+<strong>Default:</strong> <code>Unset uses operating system defaults</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> RLimitCPU is only available in Apache 1.2 and later<p>
+
+Takes 1 or 2 parameters. The first parameter sets the soft resource limit for all
+processes and the second parameter sets the maximum resource limit. Either parameter
+can be a number, or <em>max</em> to indicate to the server that the limit should
+be set to the maximum allowed by the operating system configuration. Raising the
+maximum resource limit requires that the server is running as root, or in the initial
+startup phase.<p>
+
+CPU resource limits are expressed in seconds per process.<p>
+
+See also <A HREF="#rlimitmem">RLimitMEM</A> or <A HREF="#rlimitnproc">RLimitNPROC</A>.<p><hr>
+
+<A name="rlimitmem"><h2>RLimitMEM directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt RLimitMEM} directive&gt; -->
+<strong>Syntax:</strong> RLimitMEM <em># or 'max'</em> <em>[# or 'max']</em><br>
+<strong>Default:</strong> <code>Unset uses operating system defaults</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> RLimitMEM is only available in Apache 1.2 and later<p>
+
+Takes 1 or 2 parameters. The first parameter sets the soft resource limit for all
+processes and the second parameter sets the maximum resource limit. Either parameter
+can be a number, or <em>max</em> to indicate to the server that the limit should
+be set to the maximum allowed by the operating system configuration. Raising the
+maximum resource limit requires that the server is running as root, or in the initial
+startup phase.<p>
+
+Memory resource limits are expressed in bytes per process.<p>
+
+See also <A HREF="#rlimitcpu">RLimitCPU</A> or <A HREF="#rlimitnproc">RLimitNPROC</A>.<p><hr>
+
+<A name="rlimitnproc"><h2>RLimitNPROC directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt RLimitNPROC} directive&gt; -->
+<strong>Syntax:</strong> RLimitNPROC <em># or 'max'</em> <em>[# or 'max']</em><br>
+<strong>Default:</strong> <code>Unset uses operating system defaults</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> RLimitNPROC is only available in Apache 1.2 and later<p>
+
+Takes 1 or 2 parameters. The first parameter sets the soft resource limit for all
+processes and the second parameter sets the maximum resource limit. Either parameter
+can be a number, or <em>max</em> to indicate to the server that the limit should
+be set to the maximum allowed by the operating system configuration. Raising the
+maximum resource limit requires that the server is running as root, or in the initial
+startup phase.<p>
+
+Process limits control the number of processes per user.<p>
+
+Note: If CGI processes are <b>not</b> running under userids other than the
+web server userid, this directive will limit the number of processes that the
+server itself can create. Evidence of this situation will be indicated by
+<b><em>cannot fork</em></b> messages in the error_log.<p>
+
+See also <A HREF="#rlimitmem">RLimitMEM</A> or <A HREF="#rlimitcpu">RLimitCPU</A>.
+
+<p><hr>
+
+<A name="satisfy"><h2>Satisfy</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Satisfy} directive&gt; -->
+<strong>Syntax:</strong> Satisfy <em>'any' or 'all'</em><br>
+<strong>Default:</strong> Satisfy all<br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> Satisfy is only available in Apache 1.2 and later<p>
+
+Access policy if both allow and require used. The parameter can be
+either <em>'all'</em> or <em>'any'</em>. This directive is only useful
+if access to a particular area is being restricted by both
+username/password <i>and</i> client host address. In this case the
+default behavior ("all") is to require that the client passes the
+address access restriction <i>and</i> enters a valid username and
+password. With the "any" option the client will be granted access if
+they either pass the host restriction or enter a valid username and
+password. This can be used to password restrict an area, but to let
+clients from particular addresses in without prompting for a password.
+
+
+<p><hr>
+
+<A name="scoreboardfile"><h2>ScoreBoardFile directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ScoreBoardFile} directive&gt; -->
+<strong>Syntax:</strong> ScoreBoardFile <em>filename</em><br>
+<strong>Default:</strong> <code>ScoreBoardFile logs/apache_status</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The ScoreBoardFile directive is required on some architectures to place
+a file that the server will use to communicate between its children and
+the parent. The easiest way to find out if your architecture requires
+a scoreboard file is to run Apache and see if it creates the file named
+by the directive. If your architecture requires it then you must ensure
+that this file is not used at the same time by more than one invocation
+of Apache.<p>
+
+If you have to use a ScoreBoardFile then you may see improved speed by
+placing it on a RAM disk. But be careful that you heed the same warnings
+about log file placement and
+<a href="../misc/security_tips.html">security</a>.<p>
+
+Apache 1.2 and above:<p>
+
+Linux 1.x users might be able to add <code>-DHAVE_SHMGET</code> to
+the <code>EXTRA_CFLAGS</code> in your <code>Configuration</code>. This
+might work with some 1.x installations, but won't work with all of
+them.<p>
+
+SVR4 users should consider adding <code>-DHAVE_SHMGET</code> to the
+<code>EXTRA_CFLAGS</code> in your <code>Configuration</code>. This
+is believed to work, but we were unable to test it in time for 1.2
+release.<p>
+
+<strong>See Also</strong>:
+<a href="../stopping.html">Stopping and Restarting Apache</a></p>
+
+<p><hr>
+
+<A name="sendbuffersize"><h2>SendBufferSize directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt SendBufferSize} directive&gt; -->
+<strong>Syntax:</strong> SendBufferSize <em>bytes</em><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The server will set the TCP buffer size to the number of bytes
+specified. Very useful to increase past standard OS defaults on high
+speed high latency (i.e. 100ms or so, such as transcontinental
+fast pipes)
+<p><hr>
+
+<A name="serveradmin"><h2>ServerAdmin directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ServerAdmin} directive&gt; -->
+<strong>Syntax:</strong> ServerAdmin <em>email-address</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The ServerAdmin sets the e-mail address that the server includes in any
+error messages it returns to the client.<p>
+
+It may be worth setting up a dedicated address for this, e.g.
+<blockquote><code>ServerAdmin www-admin@foo.bar.com</code></blockquote>
+as users do not always mention that they are talking about the server!<p><hr>
+
+<A name="serveralias"><h2>ServerAlias directive</h2></A>
+
+<strong>Syntax:</strong> ServerAlias <em>host1 host2 ...</em><br>
+<strong>Context:</strong> virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> ServerAlias is only available in Apache
+1.1 and later.<p>
+
+The ServerAlias directive sets the alternate names for a host, for use
+with
+<a href="../host.html">Host-header based virtual hosts</a>.
+<p><strong>See Also</strong>:
+<a href="../vhosts-in-depth.html">In-depth description of Virtual Host matching</a></p>
+
+<hr>
+
+<A name="servername"><h2>ServerName directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ServerName} directive&gt; -->
+<strong>Syntax:</strong> ServerName <em>fully-qualified domain name</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The ServerName directive sets the hostname of the server; this is only
+used when creating redirection URLs. If it is not specified, then the
+server attempts to deduce it from its own IP address; however this may
+not work reliably, or may not return the preferred hostname. For example:
+<blockquote><code>ServerName www.wibble.com</code></blockquote>
+would be used if the canonical (main) name of the actual machine
+were <code>monster.wibble.com</code>.<p>
+<p><strong>See Also</strong>:
+<a href="../dns-caveats.html">DNS Issues</a></p>
+<hr>
+
+<A name="serverpath"><h2>ServerPath directive</h2></A>
+
+<strong>Syntax:</strong> ServerPath <em>pathname</em><br>
+<strong>Context:</strong> virtual host<br>
+<strong>Status:</strong> core<br>
+<strong>Compatibility:</strong> ServerPath is only available in Apache
+1.1 and later.<p>
+
+The ServerPath directive sets the legacy URL pathname for a host, for
+use with <a href="../host.html">Host-header based virtual hosts</a>.
+<p><strong>See Also</strong>:
+<a href="../vhosts-in-depth.html">In-depth description of Virtual Host matching</a></p>
+<hr>
+
+<A name="serverroot"><h2>ServerRoot directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ServerRoot} directive&gt; -->
+<strong>Syntax:</strong> ServerRoot <em>directory-filename</em><br>
+<strong>Default:</strong> <code>ServerRoot /usr/local/etc/httpd</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The ServerRoot directive sets the directory in which the server lives.
+Typically it will contain the subdirectories <code>conf/</code> and
+<code>logs/</code>. Relative paths for other configuration files are taken
+as relative to this directory.<br>
+See also <a href="../invoking.html">the <code>-d</code> option to httpd</a>.<p><hr>
+
+<A name="servertype"><h2>ServerType directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ServerType} directive&gt; -->
+<strong>Syntax:</strong> ServerType <em>type</em><br>
+<strong>Default:</strong> <code>ServerType standalone</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The ServerType directive sets how the server is executed by the system.
+<em>Type</em> is one of
+<dl>
+<dt>inetd
+<dd>The server will be run from the system process inetd; the command to start
+the server is added to <code>/etc/inetd.conf</code>
+<dt>standalone
+<dd>The server will run as a daemon process; the command to start the server
+is added to the system startup scripts. (<code>/etc/rc.local</code> or
+<code>/etc/rc3.d/...</code>.)
+</dl>
+
+Inetd is the lesser used of the two options. For each http
+connection received, a new copy of the server is started from scratch;
+after the connection is complete, this program exits. There is a high price to
+pay per connection, but for security reasons, some admins prefer this option.
+<p>
+
+Standalone is the most common setting for ServerType since
+it is far more efficient. The server is started once, and services all
+subsequent connections. If you intend running Apache to serve a busy site,
+standalone will probably be your only option.<p>
+
+SECURITY: if you are paranoid about security, run in inetd mode. Security
+cannot be guaranteed in either, but whilst most people are happy to use
+standalone, inetd is probably least prone to attack.<p><hr>
+
+<A name="startservers"><h2>StartServers directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt StartServers} directive&gt; -->
+<strong>Syntax:</strong> StartServers <em>number</em><br>
+<strong>Default:</strong> <code>StartServers 5</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The StartServers directive sets the number of child server processes created
+on startup. As the number of processes is dynamically controlled depending
+on the load, there is usually little reason to adjust this parameter.<p>
+
+See also <A HREF="#minspareservers">MinSpareServers</A> and
+<A HREF="#maxspareservers">MaxSpareServers</A>.<p><hr>
+
+<A name="timeout"><h2>TimeOut directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt TimeOut} directive&gt; -->
+<strong>Syntax:</strong> TimeOut <em>number</em><br>
+<strong>Default:</strong> <code>TimeOut 300</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> core<p>
+
+The TimeOut directive currently defines the amount of time Apache will
+wait for three things:
+
+<OL>
+ <LI>The total amount of time it takes to receive a GET request.
+ <LI>The amount of time between receipt of TCP packets on a POST or
+ PUT request.
+ <LI>The amount of time between ACKs on transmissions of TCP packets
+ in responses.
+</OL>
+
+We plan on making these separately configurable at some point down the
+road. The timer used to default to 1200 before 1.2, but has been
+lowered to 300 which is still far more than necessary in most
+situations. It is not set any lower by default because there may
+still be odd places in the code where the timer is not reset when
+a packet is sent.
+
+<p><hr>
+
+<A name="user"><h2>User directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt User} directive&gt; -->
+<strong>Syntax:</strong> User <em>unix-userid</em><br>
+<strong>Default:</strong> <code>User #-1</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> core<p>
+
+The User directive sets the userid as which the server will answer requests.
+In order to use this directive, the standalone server must be run initially
+as root. <em>Unix-userid</em> is one of:
+<dl>
+<dt>A username
+<dd>Refers to the given user by name.
+<dt># followed by a user number.
+<dd>Refers to a user by their number.
+</dl>
+
+The user should have no privileges which result in it being able to access
+files which are not intended to be visible to the outside world, and
+similarly, the user should not be able to execute code which is not
+meant for httpd requests. It is recommended that you set up a new user and
+group specifically for running the server. Some admins use user
+<code>nobody</code>, but this is not always possible or desirable.<p>
+
+Notes: If you start the server as a non-root user, it will fail to change
+to the lesser privileged user, and will instead continue to run as
+that original user. If you do start the server as root, then it is normal
+for the parent process to remain running as root.<p>
+
+Special note: Use of this directive in &lt;VirtualHost&gt; requires a
+properly configured <A HREF="../suexec.html">suEXEC wrapper</A>.
+When used inside a &lt;VirtualHost&gt; in this manner, only the user
+that CGIs are run as is affected. Non-CGI requests are still processed
+with the user specified in the main User directive.<p>
+
+SECURITY: Don't set User (or <A HREF="#group">Group</A>) to
+<code>root</code> unless you know exactly what you are doing, and what the
+dangers are.<p><hr>
+
+<A name="virtualhost"><h2>&lt;VirtualHost&gt; directive</h2></A>
+<!--%plaintext &lt;?INDEX {\tt VirtualHost} section directive&gt; -->
+<strong>Syntax:</strong> &lt;VirtualHost <em>addr</em>[:<em>port</em>] ...&gt; ...
+&lt;/VirtualHost&gt; <br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> Core.<br>
+<strong>Compatibility:</strong> Non-IP address-based Virtual Hosting only
+available in Apache 1.1 and later.<br>
+<strong>Compatibility:</strong> Multiple address support only available in
+Apache 1.2 and later.<p>
+
+&lt;VirtualHost&gt; and &lt;/VirtualHost&gt; are used to enclose a group of
+directives which will apply only to a particular virtual host.
+Any directive which is allowed in a virtual host context may be used.
+When the server receives a request for a document on a particular virtual
+host, it uses the configuration directives enclosed in the &lt;VirtualHost&gt;
+section. <em>Addr</em> can be
+<menu>
+<li>The IP address of the virtual host
+<li>A fully qualified domain name for the IP address of the virtual host.
+</menu> Example:
+<blockquote>
+<code>
+&lt;VirtualHost 10.1.2.3&gt; <br>
+ServerAdmin webmaster@host.foo.com <br>
+DocumentRoot /www/docs/host.foo.com <br>
+ServerName host.foo.com <br>
+ErrorLog logs/host.foo.com-error_log <br>
+TransferLog logs/host.foo.com-access_log <br>
+&lt;/VirtualHost&gt;
+</code></blockquote>
+
+Each VirtualHost must correspond to a different IP address or a
+different host name for the server, in the latter case the server
+machine must be configured to accept IP packets for multiple
+addresses. (If the machine does not have multiple network interfaces,
+then this can be accomplished with the <code>ifconfig alias</code>
+command (if your OS supports it), or with kernel patches like <A
+HREF="../misc/vif-info.html">VIF</A> (for SunOS(TM) 4.1.x)).<p>
+
+The special name <code>_default_</code> can be specified in which case
+this virtual host will match any IP address that is not explicitly listed
+in another virtual host. In the absence of any _default_ virtual host
+the "main" server config, consisting of all those definitions outside
+any VirtualHost section, is used when no match occurs.<p>
+
+You can specify a <code>:port</code> to change the port that is matched.
+If unspecified then it defaults to the same port as the most recent
+<code><a href="#port">Port</a></code> statement of the main server. You
+may also specify <code>:*</code> to match all ports on that address.
+(This is recommended when used with <code>_default_</code>.)<p>
+
+<strong>SECURITY</strong>: See the
+<A HREF="../misc/security_tips.html">security tips</A>
+document for details on why your security could be compromised if
+the directory where logfiles are stored is writable by anyone other
+than the user that starts the server.
+
+<p><strong>See also:</strong>
+<A HREF="../dns-caveats.html">Warnings about DNS and Apache</a><br>
+<strong>See also:</strong>
+<A HREF="../virtual-host.html">Information on Virtual Hosts.
+(multihome)</A><br>
+<strong>See also:</strong>
+<a href="../host.html">Non-IP address-based Virtual Hosts</a><br>
+<strong>See also:</strong>
+<a href="../vhosts-in-depth.html">In-depth description of Virtual Host matching</a>
+</p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html b/usr.sbin/httpd/htdocs/manual/mod/directives.html
new file mode 100644
index 00000000000..e5d8fb839e1
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache directives</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Apache directives</H1>
+
+<ul>
+<li><A HREF="core.html#accessconfig">AccessConfig</A>
+<li><A HREF="core.html#accessfilename">AccessFileName</A>
+<li><A HREF="mod_actions.html#action">Action</A>
+<li><A HREF="mod_dir.html#addalt">AddAlt</A>
+<li><A HREF="mod_dir.html#addaltbyencoding">AddAltByEncoding</A>
+<li><A HREF="mod_dir.html#addaltbytype">AddAltByType</A>
+<li><A HREF="mod_dir.html#adddescription">AddDescription</A>
+<li><A HREF="mod_mime.html#addencoding">AddEncoding</A>
+<li><A HREF="mod_mime.html#addhandler">AddHandler</A>
+<li><A HREF="mod_dir.html#addicon">AddIcon</A>
+<li><A HREF="mod_dir.html#addiconbyencoding">AddIconByEncoding</A>
+<li><A HREF="mod_dir.html#addiconbytype">AddIconByType</A>
+<li><A HREF="mod_mime.html#addlanguage">AddLanguage</A>
+<li><A HREF="core.html#addmodule">AddModule</A>
+<li><A HREF="mod_mime.html#addtype">AddType</A>
+<li><A HREF="mod_log_agent.html#agentlog">AgentLog</A>
+<li><A HREF="mod_alias.html#alias">Alias</A>
+<li><A HREF="mod_access.html#allow">allow</A>
+<li><A HREF="core.html#allowoverride">AllowOverride</A>
+<li><A HREF="mod_auth_anon.html#anonymous">Anonymous</A>
+<li><A HREF="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</A>
+<li><A HREF="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</A>
+<li><A HREF="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</A>
+<li><A HREF="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</A>
+<li><A HREF="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</A>
+<li><A HREF="mod_auth.html#authauthoritative">AuthAuthoritative</A>
+<li><A HREF="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</A>
+<li><A HREF="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</A>
+<li><A HREF="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</A>
+<li><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A>
+<li><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A>
+<li><A HREF="mod_auth_db.html#authdbuserfile">AuthDBUserFile</A>
+<li><A HREF="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</A>
+<li><A HREF="mod_digest.html#authdigestfile">AuthDigestFile</A>
+<li><A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A>
+<li><A HREF="core.html#authname">AuthName</A>
+<li><A HREF="core.html#authtype">AuthType</A>
+<li><A HREF="mod_auth.html#authuserfile">AuthUserFile</A>
+<li><A HREF="core.html#bindaddress">BindAddress</A>
+<li><A HREF="mod_browser.html#browsermatch">BrowserMatch</A>
+<li><A HREF="mod_browser.html#browsermatchnocase">BrowserMatchNoCase</A>
+<li><A HREF="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</A>
+<li><A HREF="mod_proxy.html#cachedirlength">CacheDirLength</A>
+<li><A HREF="mod_proxy.html#cachedirlevels">CacheDirLevels</A>
+<li><A HREF="mod_proxy.html#cachegcinterval">CacheGcInterval</A>
+<li><A HREF="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</A>
+<li><A HREF="mod_proxy.html#cachemaxexpire">CacheMaxExpire</A>
+<li><A HREF="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</A>
+<li><A HREF="mod_proxy.html#cacheroot">CacheRoot</A>
+<li><A HREF="mod_proxy.html#cachesize">CacheSize</A>
+<li><A HREF="core.html#clearmodulelist">ClearModuleList</A>
+<li><A HREF="mod_usertrack.html#cookieexpires">CookieExpires</A>
+<li><A HREF="mod_cookies.html#cookielog">CookieLog</A> (mod_cookies)
+<li><A HREF="mod_log_config.html#cookielog">CookieLog</A> (mod_log_config)
+<li><A HREF="mod_usertrack.html#cookietracking">CookieTracking</A>
+<li><A HREF="mod_log_config.html#customlog">CustomLog</A>
+<li><A HREF="mod_dir.html#defaulticon">DefaultIcon</A>
+<li><A HREF="core.html#defaulttype">DefaultType</A>
+<li><A HREF="mod_access.html#deny">deny</A>
+<li><A HREF="core.html#directory">&lt;Directory&gt;</A>
+<li><A HREF="mod_dir.html#directoryindex">DirectoryIndex</A>
+<li><A HREF="core.html#documentroot">DocumentRoot</A>
+<li><A HREF="core.html#errordocument">ErrorDocument</A>
+<li><A HREF="core.html#errorlog">ErrorLog</A>
+<li><A HREF="mod_example.html#example">Example</A>
+<li><A HREF="mod_expires.html#expiresactive">ExpiresActive</A>
+<li><A HREF="mod_expires.html#expiresbytype">ExpiresByType</A>
+<li><A HREF="mod_expires.html#expiresdefault">ExpiresDefault</A>
+<li><A HREF="mod_dir.html#fancyindexing">FancyIndexing</A>
+<li><A HREF="core.html#files">&lt;Files&gt;</A>
+<li><A HREF="mod_mime.html#forcetype">ForceType</A>
+<li><A HREF="core.html#group">Group</A>
+<li><A HREF="mod_headers.html#header">Header</A>
+<li><A HREF="mod_dir.html#headername">HeaderName</A>
+<li><A HREF="core.html#hostnamelookups">HostNameLookups</A>
+<li><A HREF="core.html#identitycheck">IdentityCheck</A>
+<li><A HREF="core.html#ifmodule">&lt;IfModule&gt;</A>
+<li><A HREF="mod_imap.html#imapbase">ImapBase</A>
+<li><A HREF="mod_imap.html#imapdefault">ImapDefault</A>
+<li><A HREF="mod_imap.html#imapmenu">ImapMenu</A>
+<li><A HREF="mod_dir.html#indexignore">IndexIgnore</A>
+<li><A HREF="mod_dir.html#indexoptions">IndexOptions</A>
+<li><A HREF="core.html#keepalive">KeepAlive</A>
+<li><A HREF="core.html#keepalivetimeout">KeepAliveTimeout</A>
+<li><A HREF="mod_negotiation.html#languagepriority">LanguagePriority</A>
+<li><A HREF="core.html#limit">&lt;Limit&gt;</A>
+<li><A HREF="core.html#listen">Listen</A>
+<li><A HREF="mod_dld.html#loadfile">LoadFile</A>
+<li><A HREF="mod_dld.html#loadmodule">LoadModule</A>
+<li><A HREF="core.html#location">&lt;Location&gt;</A>
+<li><A HREF="core.html#lockfile">LockFile</A>
+<li><A HREF="mod_log_config.html#logformat">LogFormat</A>
+<li><A HREF="core.html#maxclients">MaxClients</A>
+<li><A HREF="core.html#maxkeepaliverequests">MaxKeepAliveRequests</A>
+<li><A HREF="core.html#maxrequestsperchild">MaxRequestsPerChild</A>
+<li><A HREF="core.html#maxspareservers">MaxSpareServers</A>
+<li><A HREF="mod_cern_meta.html#metadir">MetaDir</A>
+<li><A HREF="mod_cern_meta.html#metasuffix">MetaSuffix</A>
+<li><A HREF="core.html#minspareservers">MinSpareServers</A>
+<li><A HREF="mod_proxy.html#nocache">NoCache</A>
+<li><A HREF="core.html#options">Options</A>
+<li><A HREF="mod_access.html#order">order</A>
+<li><A HREF="mod_env.html#passenv">PassEnv</A>
+<li><A HREF="core.html#pidfile">PidFile</A>
+<li><A HREF="core.html#port">Port</A>
+<li><A HREF="mod_proxy.html#proxyblock">ProxyBlock</A>
+<li><A HREF="mod_proxy.html#proxypass">ProxyPass</A>
+<li><A HREF="mod_proxy.html#proxyremote">ProxyRemote</A>
+<li><A HREF="mod_proxy.html#proxyrequests">ProxyRequests</A>
+<li><A HREF="mod_dir.html#readmename">ReadmeName</A>
+<li><A HREF="mod_alias.html#redirect">Redirect</A>
+<li><A HREF="mod_alias.html#redirectperm">RedirectPermanent</A>
+<li><A HREF="mod_alias.html#redirecttemp">RedirectTemp</A>
+<li><A HREF="mod_log_referer.html#refererignore">RefererIgnore</A>
+<li><A HREF="mod_log_referer.html#refererlog">RefererLog</A>
+<li><A HREF="core.html#require">require</A>
+<li><A HREF="core.html#resourceconfig">ResourceConfig</A>
+<li><A HREF="mod_rewrite.html#RewriteBase">RewriteBase</A>
+<li><A HREF="mod_rewrite.html#RewriteCond">RewriteCond</A>
+<li><A HREF="mod_rewrite.html#RewriteEngine">RewriteEngine</A>
+<li><A HREF="mod_rewrite.html#RewriteLog">RewriteLog</A>
+<li><A HREF="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</A>
+<li><A HREF="mod_rewrite.html#RewriteMap">RewriteMap</A>
+<li><A HREF="mod_rewrite.html#RewriteOptions">RewriteOptions</A>
+<li><A HREF="mod_rewrite.html#RewriteRule">RewriteRule</A>
+<li><A HREF="core.html#rlimitcpu">RLimitCPU</A>
+<li><A HREF="core.html#rlimitmem">RLimitMEM</A>
+<li><A HREF="core.html#rlimitnproc">RLimitNPROC</A>
+<li><A HREF="core.html#satisfy">Satisfy</A>
+<li><A HREF="core.html#scoreboardfile">ScoreBoardFile</A>
+<li><A HREF="mod_actions.html#script">Script</A>
+<li><A HREF="mod_alias.html#scriptalias">ScriptAlias</A>
+<li><A HREF="mod_cgi.html#scriptlog">ScriptLog</A>
+<li><A HREF="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</A>
+<li><A HREF="mod_cgi.html#scriptloglength">ScriptLogLength</A>
+<li><A HREF="core.html#sendbuffersize">SendBufferSize</A>
+<li><A HREF="core.html#serveradmin">ServerAdmin</A>
+<li><A HREF="core.html#serveralias">ServerAlias</A>
+<li><A HREF="core.html#servername">ServerName</A>
+<li><A HREF="core.html#serverpath">ServerPath</A>
+<li><A HREF="core.html#serverroot">ServerRoot</A>
+<li><A HREF="core.html#servertype">ServerType</A>
+<li><A HREF="mod_env.html#setenv">SetEnv</A>
+<li><A HREF="mod_mime.html#sethandler">SetHandler</A>
+<li><A HREF="core.html#startservers">StartServers</A>
+<li><A HREF="core.html#timeout">TimeOut</A>
+<li><A HREF="mod_log_common.html#transferlog">TransferLog</A> (mod_log_common)
+<li><A HREF="mod_log_config.html#transferlog">TransferLog</A> (mod_log_config)
+<li><A HREF="mod_mime.html#typesconfig">TypesConfig</A>
+<li><A HREF="mod_env.html#unsetenv">UnsetEnv</A>
+<li><A HREF="core.html#user">User</A>
+<li><A HREF="mod_userdir.html#userdir">UserDir</A>
+<li><A HREF="core.html#virtualhost">&lt;VirtualHost&gt;</A>
+<li><A HREF="mod_include.html#xbithack">XBitHack</A>
+</ul>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/footer.html b/usr.sbin/httpd/htdocs/manual/mod/footer.html
new file mode 100644
index 00000000000..cbbcf9a8e2c
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/footer.html
@@ -0,0 +1,7 @@
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/header.html b/usr.sbin/httpd/htdocs/manual/mod/header.html
new file mode 100644
index 00000000000..3a472e66722
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/header.html
@@ -0,0 +1,6 @@
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/index.html b/usr.sbin/httpd/htdocs/manual/mod/index.html
new file mode 100644
index 00000000000..2a2aecea5a8
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/index.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache modules</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Apache modules</h1>
+
+<P>
+Below is a list of all of the modules that come as part of the
+Apache distribution. See also the complete alphabetical list of
+<A
+ HREF="directives.html"
+>all Apache directives</A>.
+</P>
+
+<dl>
+<dt><A HREF="core.html">Core</A>
+<dd>Core Apache features.
+<dt><A HREF="mod_access.html">mod_access</A>
+<dd>Host based access control.
+<dt><A HREF="mod_actions.html">mod_actions</A> Apache 1.1 and later.
+<dd>Filetype/method-based script execution
+<dt><A HREF="mod_alias.html">mod_alias</A>
+<dd>Aliases and redirects.
+<dt><A HREF="mod_asis.html">mod_asis</A>
+<dd>The .asis file handler.
+<dt><A HREF="mod_auth.html">mod_auth</A>
+<dd>User authentication using text files.
+<dt><A HREF="mod_auth_anon.html">mod_auth_anon</A>
+<dd>Anonymous user authentication, FTP-style.
+<dt><A HREF="mod_auth_db.html">mod_auth_db</A>
+<dd>User authentication using Berkeley DB files.
+<dt><A HREF="mod_auth_dbm.html">mod_auth_dbm</A>
+<dd>User authentication using DBM files.
+<dt><A HREF="mod_auth_msql.html">mod_auth_msql</A>
+<dd>User authentication using mSQL files.
+<dt><A HREF="mod_browser.html">mod_browser</A> Apache 1.2 and up
+<dd>Set environment variables based on User-Agent strings
+<dt><A HREF="mod_cern_meta.html">mod_cern_meta</a>
+<dd>Support for HTTP header metafiles.
+<dt><A HREF="mod_cgi.html">mod_cgi</A>
+<dd>Invoking CGI scripts.
+<dt><A HREF="mod_cookies.html">mod_cookies</A> up to Apache 1.1.1
+<dd>Support for Netscape-like cookies. Replaced in Apache 1.2 by
+mod_usertrack
+<dt><A HREF="mod_digest.html">mod_digest</A>
+<dd>MD5 authentication
+<dt><A HREF="mod_dir.html">mod_dir</A>
+<dd>Automatic directory listings.
+<dt><A HREF="mod_dld.html">mod_dld</A>
+<dd>Start-time linking with the GNU libdld.
+<dt><A HREF="mod_env.html">mod_env</A>
+<dd>Passing of environments to CGI scripts
+<dt><A HREF="mod_example.html">mod_example</A> Apache 1.2 and up
+<dd>Demonstrates Apache API
+<dt><A HREF="mod_expires.html">mod_expires</A> Apache 1.2 and up
+<dd>Apply Expires: headers to resources
+<dt><A HREF="mod_headers.html">mod_headers</A> Apache 1.2 and up
+<dd>Add arbitrary HTTP headers to resources
+<dt><A HREF="mod_imap.html">mod_imap</A>
+<dd>The imagemap file handler.
+<dt><A HREF="mod_include.html">mod_include</A>
+<dd>Server-parsed documents.
+<dt><A HREF="mod_info.html">mod_info</a>
+<dd>Server configuration information
+<dt><A HREF="mod_log_agent.html">mod_log_agent</A>
+<dd>Logging of User Agents.
+<dt><A HREF="mod_log_common.html">mod_log_common</A> up to Apache 1.1.1
+<dd>Standard logging in the Common Logfile Format. Replaced by the
+mod_log_config module in Apache 1.2 and up
+<dt><A HREF="mod_log_config.html">mod_log_config</A>
+<dd>User-configurable logging replacement for mod_log_common.
+<dt><A HREF="mod_log_referer.html">mod_log_referer</A>
+<dd>Logging of document references.
+<dt><A HREF="mod_mime.html">mod_mime</A>
+<dd>Determining document types.
+<dt><A HREF="mod_negotiation.html">mod_negotiation</A>
+<dd>Content negotiation.
+<dt><A HREF="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and up
+<dd>Powerful URI-to-filename mapping using regular expressions
+<dt><A HREF="mod_proxy.html">mod_proxy</A>
+<dd>Caching proxy abilities
+<dt><A HREF="mod_status.html">mod_status</a>
+<dd>Server status display
+<dt><A HREF="mod_userdir.html">mod_userdir</A>
+<dd>User home directories.
+<dt><A HREF="mod_usertrack.html">mod_usertrack</A> Apache 1.2 and up
+<dd>User tracking using Cookies (replacement for mod_cookies.c)
+</dl>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html
new file mode 100644
index 00000000000..0787282a9db
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_access</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Module mod_access</h1>
+
+This module is contained in the <code>mod_access.c</code> file, and
+is compiled in by default. It provides access control based on client
+hostname or IP address.
+
+
+<menu>
+<li><A HREF="#allow">allow</A>
+<li><A HREF="#allowfromenv">allow from env=</A>
+<li><A HREF="#deny">deny</A>
+<li><A HREF="#denyfromenv">deny from env=</A>
+<li><A HREF="#order">order</A>
+</menu>
+<hr>
+
+
+<A name="allow"><h2>allow</h2></A>
+<!--%plaintext &lt;?INDEX {\tt allow} directive&gt; -->
+<strong>Syntax:</strong> allow from <em>host host ...</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> Limit<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_access<p>
+
+The allow directive affects which hosts can access a given directory.
+<em>Host</em> is one of the following:
+<dl>
+<dt><code>all</code>
+<dd>all hosts are allowed access
+<dt>A (partial) domain-name
+<dd>host whose name is, or ends in, this string are allowed access.
+<dt>A full IP address
+<dd>An IP address of a host allowed access
+<dt>A partial IP address
+<dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
+</dl>
+
+Example:<blockquote><code>allow from .ncsa.uiuc.edu</code></blockquote>
+All hosts in the specified domain are allowed access.<p>
+
+Note that this compares whole components; <code>bar.edu</code>
+would not match <code>foobar.edu</code>.<p>
+
+See also <A HREF="#deny">deny</A>, <A HREF="#order">order</A>, and
+<a href="mod_browser.html#browsermatch">BrowserMatch</a>.<p>
+
+<a name="allowfromenv"><strong>Syntax:</strong> allow from env=<em>variablename</em></a><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> Limit<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_access<br>
+<strong>Compatibility:</strong> Apache 1.2 and above<p>
+
+The allow from env directive controls access to a directory by the
+existence (or non-existence) of an environment variable.
+
+Example:<blockquote><pre>
+BrowserMatch ^KnockKnock/2.0 let_me_in
+&lt;Directory /docroot&gt;
+order allow,deny
+allow from env=let_me_in
+deny from all
+&lt;/Directory&gt;
+</pre></blockquote>
+
+See also <A HREF="#denyfromenv">deny from env</A>
+and <A HREF="#order">order</A>.<p><hr>
+
+<A name="deny"><h2>deny</h2></A>
+<!--%plaintext &lt;?INDEX {\tt deny} directive&gt; -->
+<strong>Syntax:</strong> deny from <em>host host ...</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> Limit<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_access<p>
+
+The deny directive affects which hosts can access a given directory.
+<em>Host</em> is one of the following:
+<dl>
+<dt><code>all</code>
+<dd>all hosts are denied access
+<dt>A (partial) domain-name
+<dd>host whose name is, or ends in, this string are denied access.
+<dt>A full IP address
+<dd>An IP address of a host denied access
+<dt>A partial IP address
+<dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
+</dl>
+
+Example:<blockquote><code>deny from 16</code></blockquote>
+All hosts in the specified network are denied access.<p>
+
+Note that this compares whole components; <code>bar.edu</code>
+would not match <code>foobar.edu</code>.<p>
+
+See also <A HREF="#allow">allow</A> and <A HREF="#order">order</A>.<p>
+
+<a name="denyfromenv"><strong>Syntax:</strong> deny from env=<em>variablename</em></a><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> Limit<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_access<br>
+<strong>Compatibility:</strong> Apache 1.2 and above<p>
+
+The deny from env directive controls access to a directory by the
+existence (or non-existence) of an environment variable.
+
+Example:<blockquote><pre>
+BrowserMatch ^BadRobot/0.9 go_away
+&lt;Directory /docroot&gt;
+order deny,allow
+deny from env=go_away
+allow from all
+&lt;/Directory&gt;
+</pre></blockquote>
+
+See also <A HREF="#allowfromenv">allow from env</A>
+and <A HREF="#order">order</A>.<p><hr>
+
+<A name="order"><h2>order</h2></A>
+<!--%plaintext &lt;?INDEX {\tt order} directive&gt; -->
+<strong>Syntax:</strong> order <em>ordering</em><br>
+<strong>Default:</strong> <code>order deny,allow</code><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> Limit<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_access<p>
+
+The order directive controls the order in which <A HREF="#allow">allow</A> and
+<A HREF="#deny">deny</A> directives are evaluated. <em>Ordering</em> is one
+of
+<dl>
+<dt>deny,allow
+<dd>the deny directives are evaluated before the allow directives. (The
+initial state is OK.)
+<dt>allow,deny
+<dd>the allow directives are evaluated before the deny directives. (The
+initial state is FORBIDDEN.)
+<dt>mutual-failure
+<dd>Only those hosts which appear on the allow list and do not appear
+on the deny list are granted access. (The initial state is irrelevant.)
+</dl>
+
+Note that in all cases every <code>allow</code> and <code>deny</code>
+statement is evaluated, there is no &quot;short-circuiting&quot;.
+
+<p>Example:
+<blockquote><code>
+order deny,allow<br>
+deny from all<br>
+allow from .ncsa.uiuc.edu<br>
+</code></blockquote>
+Hosts in the ncsa.uiuc.edu domain are allowed access; all other hosts are
+denied access.
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html
new file mode 100644
index 00000000000..686760abf26
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Module mod_actions</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_actions</h1>
+
+This module is contained in the <code>mod_actions.c</code> file, and
+is compiled in by default. It provides for
+executing CGI scripts based on media type or request method. It is not
+present in versions prior to Apache 1.1.
+
+<h2>Summary</h2>
+
+This module lets you run CGI scripts whenever a file of a certain type
+is requested. This makes it much easier to execute scripts that
+process files.
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#action">Action</A>
+<li><A HREF="#script">Script</A>
+</ul>
+
+<hr>
+
+<A name="action"><h2>Action</h2></A>
+<strong>Syntax:</strong> Action <em>mime-type cgi-script</em><br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_actions<br>
+<strong>Compatibility:</strong> Action is only available in Apache 1.1
+and later<p>
+
+This directive adds an action, which will activate <em>cgi-script</em> when
+a file of content type <em>mime-type</em> is requested. It sends the
+URL and file path of the requested document using the standard
+CGI PATH_INFO and PATH_TRANSLATED environment variables.
+
+<hr>
+
+<A name="script"><h2>Script</h2></A>
+<strong>Syntax:</strong> Script <em>method cgi-script</em><br>
+<strong>Context:</strong> server config, virtual host, directory<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_actions<br>
+<strong>Compatibility:</strong> Script is only available in Apache 1.1
+and later<p>
+
+<p>This directive adds an action, which will activate <em>cgi-script</em> when
+a file is requested using the method of <em>method</em>, which can be
+one of <code>GET</code>, <code>POST</code>, <code>PUT</code> or
+<code>DELETE</code>. It sends the
+URL and file path of the requested document using the standard
+CGI PATH_INFO and PATH_TRANSLATED environment variables.
+
+<p>Note that the Script command defines default actions only. If a CGI
+script is called, or some other resource that is capable of handling
+the requested method internally, it will do so. Also note that script
+with a method of <code>GET</code> will only be called if there are
+query arguments present (e.g. foo.html?hi). Otherwise, the request
+will proceed normally.
+
+<p>Examples:
+<pre>
+ Script GET /cgi-bin/search #e.g. for &lt;ISINDEX&gt;-style searching
+ Script PUT /~bob/put.cgi
+
+</pre>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html b/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html
new file mode 100644
index 00000000000..247cdc35ade
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_alias</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Module mod_alias</h1>
+
+This module is contained in the <code>mod_alias.c</code> file, and
+is compiled in by default. It provides for mapping different parts of the
+host filesystem in the the document tree, and for URL redirection.
+
+
+<menu>
+<li><A HREF="#alias">Alias</A>
+<li><A HREF="#redirect">Redirect</A>
+<li><A HREF="#redirecttemp">RedirectTemp</A>
+<li><A HREF="#redirectperm">RedirectPermanent</A>
+<li><A HREF="#scriptalias">ScriptAlias</A>
+</menu>
+<hr>
+
+
+<A name="alias"><h2>Alias</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Alias} directive&gt; -->
+<strong>Syntax:</strong> Alias <em>url-path directory-filename</em><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_alias<br>
+
+The Alias directive allows documents to be stored in the local filesystem
+other than under the <A HREF="core.html#documentroot">DocumentRoot</A>.
+URLs with a (%-decoded) path beginning with <em>url-path</em> will be
+mapped to local files beginning with <em>directory-filename</em>.
+Example:
+<blockquote><code>Alias /image /ftp/pub/image</code></blockquote>
+A request for http://myserver/image/foo.gif would cause the server to
+return the file /ftp/pub/image/foo.gif.<p>
+
+Note that if you include a trailing / on the <em>url-path</em> then the
+server will require a trailing / in order to expand the alias. That is,
+if you use <code>Alias /icons/ /usr/local/etc/httpd/icons/</code> then
+the url <code>/icons</code> will not be aliased.<p>
+
+See also <A HREF="#scriptalias">ScriptAlias</A>.<p><hr>
+
+<A name="redirect"><h2>Redirect</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+<strong>Syntax:</strong> Redirect [ <em>status</em> ] <em>url-path url</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_alias<br>
+<strong>Compatibility:</strong> The directory and .htaccess context's
+are only available in versions 1.1 and later. The <em>status</em> argument is only available in Apache 1.2 or later.<p>
+
+The Redirect directive maps an old URL into a new one. The new URL is returned
+to the client which attempts to fetch it again with the new address.
+<em>Url-path</em> a (%-decoded) path; any requests for documents beginning with
+this path will be returned a redirect error to a new (%-encoded) url
+beginning with <em>url</em>. Example:
+<blockquote><code>Redirect /service
+http://foo2.bar.com/service</code></blockquote>
+If the client requests http://myserver/service/foo.txt, it will be told to
+access http://foo2.bar.com/service/foo.txt instead.<p>
+
+Note: Redirect directives take precedence over Alias and ScriptAlias
+directives, irrespective of their ordering in the configuration file. Also,
+<em>Url-path</em> must be an absolute path, not a relative path, even when used with
+.htaccess files or inside of &lt;Directory&gt; sections.<p>
+
+If no <em>status</em> argument is given, the redirect will be
+"temporary" (HTTP status 302). This indicates to the client that the
+resources is has moved temporarily. The <em>status</em>
+argument can be used to return other HTTP status codes:
+<dl>
+<dt>permanent<dd>Returns a permanent redirect status (301) indicating that
+the resource has moved permanently.
+<dt>temp<dd>Returns a temporary redirect status (302). This is the
+default.
+<dt>seeother<dd>Returns a "See Other" status (303) indicating that
+the resource has been replaced.
+<dt>gone<dd>Returns a "Gone" status (410) indicating that the resource
+has been permanently removed. When this status is used the <em>url</em>
+argument should be omitted.
+</dl>
+
+Other status codes can be returned by giving the numeric status code
+as the value of <em>status</em>. If the status is between 300 and 399,
+the <em>url</em> argument must be present, otherwise it must be
+omitted. Note that the status must be known to the Apache code (see
+the function <code>send_error_response</code> in http_protocol.c).
+
+<A name="redirecttemp"><h2>RedirectTemp</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+<strong>Syntax:</strong> RedirectTemp <em>url-path url</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_alias<br>
+<strong>Compatibility:</strong> This directive is only available in 1.2<P>
+
+This directive makes the client know that the Redirect is only
+temporary. (Status 302). Exactly equivalent to <code>Redirect temporary </code><P>
+
+<A name="redirectperm"><h2>RedirectPermanent</h2></A>
+<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+<strong>Syntax:</strong> RedirectPermanent <em>url-path url</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_alias<br>
+<strong>Compatibility:</strong> This directive is only available in 1.2<P>
+
+This directive makes the client know that the Redirect is permanent.
+(Status 301). Exactly equivalent to <code>Redirect permanent</code><P>
+
+<hr>
+<A name="scriptalias"><h2>ScriptAlias</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ScriptAlias} directive&gt; -->
+<strong>Syntax:</strong> ScriptAlias <em>url-path directory-filename</em><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_alias<br>
+
+The ScriptAlias directive has the same behavior as the
+<A HREF="#alias">Alias</A> directive, except that in addition it
+marks the target directory as containing CGI scripts.
+URLs with a (%-decoded) path beginning with <em>url-path</em> will be
+mapped to scripts beginning with <em>directory-filename</em>.
+Example:
+<blockquote><code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code></blockquote>
+A request for http://myserver/cgi-bin/foo would cause the server to
+run the script /web/cgi-bin/foo.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html
new file mode 100644
index 00000000000..59a164c7b4b
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_asis</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Module mod_asis</h1>
+
+This module is contained in the <code>mod_asis.c</code> file, and
+is compiled in by default. It provides for <code>.asis</code> files. Any
+document with mime type <code>httpd/send-as-is</code> will be processed by
+this module.
+<!--%plaintext &lt;?INDEX {\tt httpd/send-as-is} mime type&gt; -->
+
+<h2>Purpose</h2>
+To allow file types to be defined such that Apache sends them without
+adding HTTP headers.<P>
+
+This can be used to send any kind of data from the server, including redirects
+and other special HTTP responses, without requiring a cgi-script or an nph
+script.
+<h2>Usage</h2>
+In the server configuration file, define a new mime type called
+<code>httpd/send-as-is</code> e.g.
+<blockquote><code>AddType httpd/send-as-is asis</code></blockquote>
+this defines the <code>.asis</code> file extension as being of the new
+<code>httpd/send-as-is</code> mime type. The contents of any file with a
+<code>.asis</code> extension will then be sent by Apache to the client with
+almost no changes. Clients will need HTTP headers to be attached, so do not
+forget them. A Status: header is also required; the data should be the
+3-digit HTTP response code, followed by a textual message.<p>
+
+Here's an example of a file whose contents are sent <em>as is</em> so as to
+tell the client that a file has redirected.
+<blockquote><code>
+Status: 302 Now where did I leave that URL <br>
+Location: http://xyz.abc.com/foo/bar.html <br>
+Content-type: text/html <br>
+<br>
+&lt;HTML&gt; <br>
+&lt;HEAD&gt; <br>
+&lt;TITLE&gt;Lame excuses'R'us&lt;/TITLE&gt; <br>
+&lt;/HEAD&gt; <br>
+&lt;BODY&gt; <br>
+&lt;H1&gt;Fred's exceptionally wonderful page has moved to <br>
+&lt;A HREF="http://xyz.abc.com/foo/bar.html"&gt;Joe's&lt;/A&gt; site. <br>
+&lt;/H1&gt; <br>
+&lt;/BODY&gt; <br>
+&lt;/HTML&gt;
+</code></blockquote>
+Notes: the server always adds a Date: and Server: header to the data returned
+to the client, so these should not be included in the file.
+The server does <em>not</em> add a Last-Modified header; it probably should.
+<P>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth.html
new file mode 100644
index 00000000000..9fa7c47159f
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_auth</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Module mod_auth</h1>
+
+This module is contained in the <code>mod_auth.c</code> file, and
+is compiled in by default. It provides for user authentication using
+textual files.
+
+
+<menu>
+<li><A HREF="#authgroupfile">AuthGroupFile</A>
+<li><A HREF="#authuserfile">AuthUserFile</A>
+<li><A HREF="#authauthoritative">AuthAuthoritative</A>
+</menu>
+<hr>
+
+
+<A name="authgroupfile"><h2>AuthGroupFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthGroupFile} directive&gt; -->
+<strong>Syntax:</strong> AuthGroupFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_auth<p>
+
+The AuthGroupFile directive sets the name of a textual file containing the list
+of user groups for user authentication. <em>Filename</em> is the absolute path
+to the group file.<p>
+Each line of the group file contains a groupname followed by a colon, followed
+by the member usernames separated by spaces. Example:
+<blockquote><code>mygroup: bob joe anne</code></blockquote>
+Note that searching large groups files is <em>very</em> inefficient;
+<A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A> should
+be used instead.<p>
+
+Security: make sure that the AuthGroupFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the AuthGroupFile.<p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authuserfile">AuthUserFile</A>.<p><hr>
+
+<A name="authuserfile"><h2>AuthUserFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthUserFile} directive&gt; -->
+<strong>Syntax:</strong> AuthUserFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_auth<p>
+
+The AuthUserFile directive sets the name of a textual file containing
+the list of users and passwords for user
+authentication. <em>Filename</em> is the absolute path to the user
+file.<p> Each line of the user file file contains a username followed
+by a colon, followed by the crypt() encrypted password. The behavior
+of multiple occurrences of the same user is undefined.<p> Note that
+searching user groups files is inefficient; <A
+HREF="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</A> should be
+used instead.<p>
+
+Security: make sure that the AuthUserFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the AuthUserFile.<p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authgroupfile">AuthGroupFile</A>.<p>
+<hr>
+<A name="authauthoritative"><h2>AuthAuthoritative</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthAuthoritative} directive&gt; -->
+<strong>Syntax:</strong> AuthAuthoritative &lt; <strong> on</strong>(default) | off &gt; <br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_auth<p>
+
+Setting the AuthAuthoritative directive explicitly to <b>'off'</b>
+allows for both authentication and authorization to be passed on to
+lower level modules (as defined in the <code>Configuration</code> and
+<code>modules.c</code> files) if there is <b>no userID</b> or
+<b>rule</b> matching the supplied userID. If there is a userID and/or
+rule specified; the usual password and access checks will be applied
+and a failure will give an Authorization Required reply.
+
+<p>
+
+So if a userID appears in the database of more than one module; or if
+a valid require directive applies to more than one module; then the
+first module will verify the credentials; and no access is passed on;
+regardless of the AuthAuthoritative setting.
+
+<p>
+
+A common use for this is in conjunction with one of the database
+modules; such as <a
+href="mod_auth_db.html"><code>mod_auth_db.c</code></a>, <a
+href="mod_auth_dbm.html"><code>mod_auth_dbm.c</code></a>, <a
+href="mod_auth_msql.html"><code>mod_auth_msql.c</code></a> and <a
+href="mod_auth_anon.html"><code>mod_auth_anon.c</code></a>. These modules
+supply the bulk of the user credential checking; but a few
+(administrator) related accesses fall through to a lower level with a
+well protected AuthUserFile.
+
+<p>
+
+<b>Default:</b> By default; control is not passed on; and an unknown
+userID or rule will result in an Authorization Required reply. Not
+setting it thus keeps the system secure; and forces an NSCA compliant
+behaviour.
+
+<p>
+
+Security: Do consider the implications of allowing a user to allow
+fall-through in his .htaccess file; and verify that this is really
+what you want; Generally it is easier to just secure a single
+.htpasswd file, than it is to secure a database such as mSQL. Make
+sure that the AuthUserFile is stored outside the document tree of the
+web-server; do <em>not</em> put it in the directory that it
+protects. Otherwise, clients will be able to download the
+AuthUserFile.
+
+<p>
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authgroupfile">AuthGroupFile</A>.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html
new file mode 100644
index 00000000000..b9ee13bcba6
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_auth_anon.c</TITLE>
+</HEAD>
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_auth_anon</H1>
+
+This module is contained in the <code>mod_auth_anon.c</code> file and
+is not compiled in by default. It is only available in Apache 1.1 and
+later. It allows "anonymous" user access to authenticated areas.
+
+<h2>Summary</h2>
+
+It does access control in a manner similar to anonymous-ftp sites; i.e.
+have a 'magic' user id 'anonymous' and the email address as a password.
+These email addresses can be logged.
+<p>
+Combined with other (database) access control methods, this allows for
+effective user tracking and customization according to a user profile
+while still keeping the site open for 'unregistered' users. One advantage
+of using Auth-based user tracking is that, unlike magic-cookies and
+funny URL pre/postfixes, it is completely browser independent and it
+allows users to share URLs.
+<p>
+
+<a href="#Directives">Directives</a> /
+<a href="#Example">Example</a> /
+<a href="#CompileTimeOptions">Compile time options</a> /
+<a href="#RevisionHistory">RevisionHistory</a> /
+<a href="#Person">Person to blame</a> /
+<a href="#Sourcecode">Sourcecode</a>
+<p>
+
+<h2><a name="Directives">Directives</a></h2>
+<ul>
+<li><A HREF="#anonymous">Anonymous</A>
+<li><A HREF="#Authoritative">Anonymous_Authoritative</A>
+<li><A HREF="#LogEmail">Anonymous_LogEmail</A>
+<li><A HREF="#MustGiveEmail">Anonymous_MustGiveEmail</A>
+<li><A HREF="#NoUserID">Anonymous_NoUserID</A>
+<li><A HREF="#VerifyEmail">Anonymous_VerifyEmail</A>
+</ul>
+
+<hr>
+
+<A name="anonymous"><h2>Anonymous</h2></a>
+<!--%plaintext &lt;?INDEX {\tt Anonymous} directive&gt; -->
+<strong>Syntax:</strong> Anonymous <em>user user ...</em><br>
+<strong>Default:</strong> none<br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ A list of one or more 'magic' userIDs which are allowed access
+ without password verification. The userIDs are space separated.
+ It is possible to use the ' and " quotes to allow a space in
+ a userID as well as the \ escape character.
+ <p>
+ Please note that the comparison is <b>case-IN-sensitive</b>.
+ <br>
+ I strongly suggest that the magic username '<code>anonymous</code>'
+ is always one of the allowed userIDs.
+ <p>
+ Example:<br>
+ <code>
+ Anonymous: anonymous "Not Registered" 'I don\'t know'
+ </code><p>
+ This would allow the user to enter without password verification
+ by using the userId's 'anonymous', 'AnonyMous','Not Registered' and
+ 'I Don't Know'.
+<HR>
+
+<A name="Authoritative"><h2>Anonymous_Authoritative</h2></A>
+<strong>Syntax:</strong> Anonymous_Authoritative <em>on | off</em><br>
+<strong>Default:</strong> <code>Anonymous_Authoritative off</code><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ When set 'on', there is no
+ fall-through to other authorization methods. So if a
+ userID does not match the values specified in the
+ <code>Anonymous</code> directive, access is denied.
+ <p>
+ Be sure you know what you are doing when you decide to switch
+ it on. And remember that it is the linking order of the modules
+ (in the Configuration / Make file) which details the order
+ in which the Authorization modules are queried.
+<hr>
+
+<A name="LogEmail"><h2>Anonymous_LogEmail</h2></A>
+<strong>Syntax:</strong> Anonymous_LogEmail <em>on | off</em><br>
+<strong>Default:</strong> <code>off</code><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ When set 'on', the default, the 'password' entered (which hopefully
+ contains a sensible email address) is logged in the httpd-log file.
+<hr>
+
+<A name="MustGiveEmail"><h2>Anonymous_MustGiveEmail</h2></a>
+<!--%plaintext &lt;?INDEX {\tt Anonymous_MustGiveEmail} directive&gt; -->
+<strong>Syntax:</strong> Anonymous_MustGiveEmail <em>on</em> | <em>off</em><br>
+<strong>Default:</strong> off<br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ Specifies whether the user must specify an email
+ address as the password. This prohibits blank passwords.
+<HR>
+
+<A name="NoUserID"><h2>Anonymous_NoUserID</h2></A>
+<strong>Syntax:</strong> Anonymous_NoUserID <em>on | off</em><br>
+<strong>Default:</strong> <code>Anonymous_NoUserID off</code><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ When set 'on', users can leave
+ the userID (and perhaps the password field) empty. This
+ can be very convenient for MS-Explorer users who can
+ just hit return or click directly on the OK button; which
+ seems a natural reaction.
+
+<hr>
+
+<A name="VerifyEmail"><h2>Anonymous_VerifyEmail</h2></A>
+<strong>Syntax:</strong> Anonymous <em>on | off</em><br>
+<strong>Default:</strong> <code>Anonymous_VerifyEmail off</code><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_anon<p>
+
+ When set 'on' the 'password' entered is
+ checked for at least one '@' and a '.' to encourage users to enter
+ valid email addresses (see the above <code>Auth_LogEmail</code>).
+
+<hr><a name="Example"><h2>Example</h2></a>
+
+The example below (when combined with the Auth directives
+of a htpasswd-file based (or GDM, mSQL etc) base access
+control system allows users in as 'guests' with the
+following properties:
+<ul>
+<li>
+It insists that the user enters a userId. (<code>Anonymous_NoUserId</code>)
+<li>
+It insists that the user enters a password. (<code>Anonymous_MustGiveEmail</code>)
+<li>
+The password entered must be a valid email address, ie. contain at least one '@' and a '.'.
+(<code>Anonymous_VerifyEmail</code>)
+<li>
+The userID must be one of <code>anonymous guest www test welcome</code>
+and comparison is <b>not</b> case sensitive.
+<code>&lt;directory /web/docs/public&gt;</code>
+<li>
+And the Email addresses entered in the passswd field are logged to
+the httpd-log file
+(<code>Anonymous_LogEmail</code>)
+</ul>
+<p>
+Excerpt of access.conf:
+<dl>
+<dt><code>
+Anonymous anonymous guest www test welcome<p>
+Anonymous_MustGiveEmail on<br>
+Anonymous_VerifyEmail on<br>
+Anonymous_NoUserId off<br>
+Anonymous_LogEmail on<br>
+<p>
+AuthName Use 'anonymous' & Email address for guest entry<br>
+AuthType basic<p>
+
+</code></dt>
+<dd>
+ Normal Apache/NCSA tokens for access control
+ <p>
+ <code>&lt;limit get post head&gt</code><br>
+ <code>order deny,allow </code><br>
+ <code>allow from all </code><br>
+ <p>
+ <code>require valid-user </code><br>
+ <code>&lt;limit&gt </code><br>
+</dd>
+</dl>
+
+
+<hr><h2><a name="CompileTimeOptions">Compile Time Options</a></h2>
+
+Currently there are no Compile options.
+
+<hr><h2><a name="RevisionHistory">Revision History</a></h2>
+
+This version: 23 Nov 1995, 24 Feb 1996, 16 May 1996.
+
+<dl>
+
+<dt>Version 0.4<br></dt>
+ <dd>First release
+ </dd>
+<dt>Version 0.5<br></dt>
+ <dd>Added 'VerifyEmail' and 'LogEmail' options. Multiple
+ 'anonymous' tokens allowed. more docs. Added Authoritative
+ functionality.
+ </dd>
+</dl>
+
+
+<hr><h2><a name="Person">Contact/person to blame</a></h2>
+
+This module was written for the
+<a href="http://ewse.ceo.org">European Wide Service Exchange</a> by
+&lt<a href="mailto:Dirk.vanGulik@jrc.it"><code>Dirk.vanGulik@jrc.it</code></a>&gt.
+Feel free to contact me if you have any problems, ice-creams or bugs. This
+documentation, courtesy of Nick Himba, <a href="mailto:himba@cs.utwente.nl">
+<code>&lt;himba@cs.utwente.nl&gt;</code></a>.
+<p>
+
+
+<hr><h2><a NAME="Sourcecode">Sourcecode</a></h2>
+
+The source code can be found at <a href="http://www.apache.org"><code>
+http://www.apache.org</code></a>. A snapshot of a development version
+usually resides at <a href="http://me-www.jrc.it/~dirkx/mod_auth_anon.c"><code>
+http://me-www.jrc.it/~dirkx/mod_auth_anon.c</code></a>. Please make sure
+that you always quote the version you use when filing a bug report.
+<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_db.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_db.html
new file mode 100644
index 00000000000..2140aa4bcc0
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_db.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_auth_db</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_auth_db</h1>
+
+This module is contained in the <code>mod_auth_db.c</code> file, and
+is not compiled in by default. It provides for user authentication using
+Berkeley DB files. It is an alternative to <A HREF="mod_auth_dbm.html">DBM</A>
+files for those systems which support DB and not DBM. It is only
+available in Apache 1.1 and later.
+
+
+<menu>
+<li><A HREF="#authdbgroupfile">AuthDBGroupFile</A>
+<li><A HREF="#authdbuserfile">AuthDBUserFile</A>
+<li><A HREF="#authdbauthoritative">AuthDBAuthoritative</A>
+</menu>
+<hr>
+
+
+<A name="authdbgroupfile"><h2>AuthDBGroupFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDBGroupFile} directive&gt; -->
+<strong>Syntax:</strong> AuthDBGroupFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_db<p>
+
+The AuthDBGroupFile directive sets the name of a DB file containing the list
+of user groups for user authentication. <em>Filename</em> is the absolute path
+to the group file.<p>
+
+The group file is keyed on the username. The value for a user is a
+comma-separated list of the groups to which the users belongs. There must
+be no whitespace within the value, and it must never contain any colons.<p>
+
+Security: make sure that the AuthDBGroupFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the
+AuthDBGroupFile unless otherwise protected.<p>
+
+Combining Group and Password DB files: In some cases it is easier to
+manage a single database which contains both the password and group
+details for each user. This simplifies any support programs that need
+to be written: they now only have to deal with writing to and locking
+a single DBM file. This can be accomplished by first setting the group
+and password files to point to the same DB file:<p>
+
+<blockquote><code>
+AuthDBGroupFile /www/userbase<br>
+AuthDBUserFile /www/userbase
+</code></blockquote>
+
+The key for the single DB record is the username. The value consists of <p>
+
+<blockquote><code>
+Unix Crypt-ed Password : List of Groups [ : (ignored) ]
+</code></blockquote>
+
+The password section contains the Unix crypt() password as before. This is
+followed by a colon and the comma separated list of groups. Other data may
+optionally be left in the DB file after another colon; it is ignored by the
+authentication module. <p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbuserfile">AuthDBUserFile</A>.<p><hr>
+
+<A name="authdbuserfile"><h2>AuthDBUserFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDBUserFile} directive&gt; -->
+<strong>Syntax:</strong> AuthDBUserFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_db<p>
+
+The AuthDBUserFile directive sets the name of a DB file containing the list
+of users and passwords for user authentication. <em>Filename</em> is the
+absolute path to the user file.<p>
+
+The user file is keyed on the username. The value for a user is the
+crypt() encrypted password, optionally followed by a colon and
+arbitrary data. The colon and the data following it will be ignored
+by the server.<p>
+
+Security: make sure that the AuthDBUserFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the
+AuthDBUserFile.<p>
+
+Important compatibility note: The implementation of "dbmopen" in the
+apache modules reads the string length of the hashed values from the
+DB data structures, rather than relying upon the string being
+NULL-appended. Some applications, such as the Netscape web server,
+rely upon the string being NULL-appended, so if you are having trouble
+using DB files interchangeably between applications this may be a
+part of the problem. <p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbgroupfile">AuthDBGroupFile</A>.<p>
+<hr>
+<A name="authdbauthoritative"><h2>AuthDBAuthoritative</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDBAuthoritative} directive&gt; -->
+<strong>Syntax:</strong> AuthDBAuthoritative &lt; <strong> on</strong>(default) | off &gt; <br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_auth<p>
+
+Setting the AuthDBAuthoritative directive explicitly to <b>'off'</b>
+allows for both authentication and authorization to be passed on
+to lower level modules (as defined in the <code>Configuration</code>
+and <code>modules.c</code> file if there is <b>no userID</b> or
+<b>rule</b> matching the supplied userID. If there is a userID
+and/or rule specified; the usual password and access checks will
+be applied and a failure will give an Authorization Required reply.
+<p>
+So if a userID appears in the database of more than one module; or
+if a valid require directive applies to more than one module; then
+the first module will verify the credentials; and no access is
+passed on; regardless of the AuthAuthoritative setting. <p>
+
+A common use for this is in conjunction with one of the basic auth
+modules; such as <a href="mod_auth.html"><code>mod_auth.c</code></a>.
+Whereas this DB module supplies the bulk of the user credential
+checking; a few (administrator) related accesses fall through to
+a lower level with a well protected .htpasswd file. <p>
+
+<b>Default:</b> By default; control is not passed on; and an unknown
+userID or rule will result in an Authorization Required reply. Not
+setting it thus keeps the system secure; and forces an NSCA compliant
+behaviour. <p>
+Security: Do consider the implications of allowing a user to allow
+fall-through in his .htaccess file; and verify that this is really
+what you want; Generally it is easier to just secure a single
+.htpasswd file, than it is to secure a database which might have
+more access interfaces.
+
+<p>
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbgroupfile">AuthDBGroupFile</A>.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_dbm.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_dbm.html
new file mode 100644
index 00000000000..7098d3ead3e
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_dbm.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_auth_dbm</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<H1 ALIGN="CENTER">Module mod_auth_dbm</h1>
+
+This module is contained in the <code>mod_auth_dbm.c</code> file, and
+is not compiled in by default. It provides for user authentication using
+DBM files.
+
+
+<menu>
+<li><A HREF="#authdbmgroupfile">AuthDBMGroupFile</A>
+<li><A HREF="#authdbmuserfile">AuthDBMUserFile</A>
+<li><A HREF="#authdbmauthoritative">AuthDBMAuthoritative</A>
+</menu>
+<hr>
+
+
+<A name="authdbmgroupfile"><h2>AuthDbmGroupFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDbmGroupFile} directive&gt; -->
+<strong>Syntax:</strong> AuthDBMGroupFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_dbm<p>
+
+The AuthDBMGroupFile directive sets the name of a DBM file containing the list
+of user groups for user authentication. <em>Filename</em> is the absolute path
+to the group file.<p>
+
+The group file is keyed on the username. The value for a user is a
+comma-separated list of the groups to which the users belongs. There must
+be no whitespace within the value, and it must never contain any colons.<p>
+
+Security: make sure that the AuthDBMGroupFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the
+AuthDBMGroupFile unless otherwise protected.<p>
+
+Combining Group and Password DBM files: In some cases it is easier to
+manage a single database which contains both the password and group
+details for each user. This simplifies any support programs that need
+to be written: they now only have to deal with writing to and locking
+a single DBM file. This can be accomplished by first setting the group
+and password files to point to the same DBM:<p>
+
+<blockquote><code>
+AuthDBMGroupFile /www/userbase<br>
+AuthDBMUserFile /www/userbase
+</code></blockquote>
+
+The key for the single DBM is the username. The value consists of <p>
+
+<blockquote><code>
+Unix Crypt-ed Password : List of Groups [ : (ignored) ]
+</code></blockquote>
+
+The password section contains the Unix crypt() password as before. This is
+followed by a colon and the comma separated list of groups. Other data may
+optionally be left in the DBM file after another colon; it is ignored by the
+authentication module. This is what www.telescope.org uses for its combined
+password and group database. <p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbmuserfile">AuthDBMUserFile</A>.<p><hr>
+
+<A name="authdbmuserfile"><h2>AuthDBMUserFile</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDBMUserFile} directive&gt; -->
+<strong>Syntax:</strong> AuthDBMUserFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_auth_dbm<p>
+
+The AuthDBMUserFile directive sets the name of a DBM file containing the list
+of users and passwords for user authentication. <em>Filename</em> is the
+absolute path to the user file.<p>
+
+The user file is keyed on the username. The value for a user is the
+crypt() encrypted password, optionally followed by a colon and
+arbitrary data. The colon and the data following it will be ignored
+by the server.<p>
+
+Security: make sure that the AuthDBMUserFile is stored outside the
+document tree of the web-server; do <em>not</em> put it in the directory that
+it protects. Otherwise, clients will be able to download the
+AuthDBMUserFile.<p>
+
+Important compatibility note: The implementation of "dbmopen" in the
+apache modules reads the string length of the hashed values from the
+DBM data structures, rather than relying upon the string being
+NULL-appended. Some applications, such as the Netscape web server,
+rely upon the string being NULL-appended, so if you are having trouble
+using DBM files interchangeably between applications this may be a
+part of the problem. <p>
+
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbmgroupfile">AuthDBMGroupFile</A>.<p>
+
+<hr>
+<A name="authdbmauthoritative"><h2>AuthDBMAuthoritative</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AuthDBMAuthoritative} directive&gt; -->
+<strong>Syntax:</strong> AuthDBMAuthoritative &lt; <strong> on</strong>(default) | off &gt; <br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_auth<p>
+
+Setting the AuthDBMAuthoritative directive explicitly to <b>'off'</b>
+allows for both authentication and authorization to be passed on
+to lower level modules (as defined in the <code>Configuration</code>
+and <code>modules.c</code> file if there is <b>no userID</b> or
+<b>rule</b> matching the supplied userID. If there is a userID
+and/or rule specified; the usual password and access checks will
+be applied and a failure will give an Authorization Required reply.
+<p>
+So if a userID appears in the database of more than one module; or
+if a valid require directive applies to more than one module; then
+the first module will verify the credentials; and no access is
+passed on; regardless of the AuthAuthoritative setting. <p>
+
+A common use for this is in conjunction with one of the basic auth
+modules; such as <a href="mod_auth.html"><code>mod_auth.c</code></a>.
+Whereas this DBM module supplies the bulk of the user credential
+checking; a few (administrator) related accesses fall through to
+a lower level with a well protected .htpasswd file. <p>
+
+<b>Default:</b> By default; control is not passed on; and an unknown
+userID or rule will result in an Authorization Required reply. Not
+setting it thus keeps the system secure; and forces an NSCA compliant
+behaviour. <p>
+
+Security: Do consider the implications of allowing a user to allow
+fall-through in his .htaccess file; and verify that this is really
+what you want; Generally it is easier to just secure a single
+.htpasswd file, than it is to secure a database which might have
+more access interfaces.
+
+<p>
+See also <A HREF="core.html#authname">AuthName</A>,
+<A HREF="core.html#authtype">AuthType</A> and
+<A HREF="#authdbmgroupfile">AuthDBMGroupFile</A>.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_msql.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_msql.html
new file mode 100644
index 00000000000..9e85f5d2cdd
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_msql.html
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<title>Module mod_auth_msql</title>
+</head>
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_auth_msql</H1>
+
+This module is contained in the <code>mod_auth_msql.c</code> file and
+is compiled in by default. It allows access control using the public
+domain mSQL database <code><a
+href="ftp://ftp.bond.edu.au/pub/Minerva/msql">ftp://ftp.bond.edu.au/pub/Minerva/msql</a></code>,
+a fast but limited SQL engine which can be contacted over an internal
+Unix domain protocol as well as over normal TCP/IP socket
+communication. It is only available in Apache 1.1 and later. <p>
+
+<a href="#FullDescription">Full description</a> /
+<a href="#Example">Example</a> /
+<a href="#CompileTimeOptions">Compile time options</a> /
+<a href="#RevisionHistory">RevisionHistory</a> /
+<a href="#Person">Person to blame</a> /
+<a href="#Sourcecode">Sourcecode</a>
+<p>
+
+<hr><h2><a name="FullDescription">Full description of all tokens</a></h2>
+<dl>
+
+<code><dt>
+Auth_MSQLhost &lt; FQHN | IP Address | localhost &gt
+</dt></code><dd>
+ Hostname of the machine running the mSQL demon. The effective uid
+ of the server should be allowed access. If not given, or if it is
+ the magic name <code>localhost</code>, it is passed to the mSQL library as a null
+ pointer. This effectively forces it to use /dev/msql rather than the
+ (slower) socket communication.
+</dd>
+
+<code><dt>
+Auth_MSQLdatabase &lt; mSQL database name &gt
+</dt></code><dd>
+ Name of the database in which the following table(s) are contained (Quick check: use the
+ mSQL command <code>relshow [&lt;hostname&gt dbase]</code> to verify the spelling of the
+ database name).
+</dd>
+
+<code><dt>
+Auth_MSQLpwd_table &lt; mSQL table name &gt
+</dt></code><dd>
+ Contains at least the fields with the username
+ and the (encrypted) password. Each uid should only occur once in this table and
+ for performance reasons should be a primary key.
+ Normally this table is compulsory, but it is
+ possible to use a fall-through to other methods
+ and use the mSQL module for group control only.
+ See the <a href="#Authoritative"><code>Auth_MSQL_Authoritative</code></a>
+ directive below.
+</dd>
+
+<code><dt>
+Auth_MSQLgrp_table &lt; mSQL table name in the above database &gt
+</dt></code><dd>
+ Contains at least the fields with the
+ username and the groupname. A user which
+ is in multiple groups has therefore
+ multiple entries. There might be some performance
+ problems associated with this and one
+ might consider to have separate tables for each
+ group (rather than all groups in one table) if
+ your directory structure allows for it.
+ One only need to specify this table when doing
+ group control.
+</dd>
+
+<code><dt>
+Auth_MSQLuid_field &lt; mSQL field name &gt
+</dt></code><dd>
+ Name of the field containing the username in the <code>
+ Auth_MSQLpwd_table</code> and optionally in the <code>
+ Auth_MSQLgrp_table</code> tables.
+</dd>
+
+<code><dt>
+Auth_MSQLpwd_field &lt; mSQL field name &gt
+</dt></code><dd>
+ Fieldname for the passwords in the <code>
+ Auth_MSQLpwd_table</code> table.
+</dd>
+
+<code><dt>
+Auth_MSQLgrp_field &lt; mSQL field name &gt
+</dt></code><dd>
+ Fieldname for the groupname<br>
+ Only the fields used need to be specified. When this
+ module is compiled with the
+ <a href="#VITEK"><code>BACKWARD_VITEK</code></a> option then
+ the uid and pwd field names default to 'user' and 'password'.
+ However you are strongly encouraged to always specify these values
+ explicitly given the security issues involved.
+</dd>
+
+<code><dt>
+Auth_MSQL_nopasswd &lt; on | off &gt
+</dt></code><dd>
+ Skip password comparison if passwd field is
+ empty, i.e. allow any password. This is 'off'
+ by default to ensure that an empty field
+ in the mSQL table does not allow people in by
+ default with a random password.
+</dd>
+
+<code><dt>
+<a name="Authoritative">Auth_MSQL_Authoritative &lt; on | off &gt</a>
+</dt></code><dd>
+ Default is 'on'. When set 'on', there is no
+ fall-through to other authorization methods. So if a
+ user is not in the mSQL dbase table (and perhaps
+ not in the right group) or has the password wrong, then
+ he or she is denied access. When this directive is set to
+ 'off', control is passed on to any other authorization
+ modules, such as the basic auth module with the htpasswd
+ file or the Unix-(g)dbm modules. The default is 'on'
+ to avoid nasty 'fall-through' surprises. Be sure you
+ know what you are doing when you decide to switch it off.
+</dd>
+
+<code><dt>
+Auth_MSQL_EncryptedPasswords &lt; on | off &gt
+</dt></code><dd>
+ Default is 'on'. When set on, the values in the
+ pwd_field are assumed to be crypt-ed using *your*
+ machines 'crypt()' function and the incoming password
+ is 'crypt'ed before comparison. When this function is
+ 'off', the comparison is done directly with the plaintext
+ entered password. (Yes, http-basic-auth does send the
+ password as plaintext over the wire :-( ). The default
+ is a sensible 'on', and I personally think that it is
+ a *very-bad-idea* to change this. However a multi
+ vendor or international environment (which sometimes
+ leads to different crypts functions) might force you to.
+</dd>
+</dl>
+
+
+<hr><h2><a name="Example">Example</a></h2>
+
+An example mSQL table could be created with the following commands:
+<pre>
+ % msqladmin create www <br>
+ % msql www <br>
+ -&gt; create table user_records ( <br>
+ -&gt; User_id char(32) primary key, <br>
+ -&gt; Cpasswd char(32), <br>
+ -&gt; Xgroup char(32) <br>
+ -&gt; ) \g <br>
+ query OK <br>
+ -&gt; \q <br>
+ % <br>
+</pre><br>
+
+The <code>User_id</code> can be as long as desired. However some of the
+popular web browsers truncate names at or stop the user from entering
+names longer than 32 characters. Furthermore the 'crypt' function
+on your platform might impose further limits. Also use of
+the <code>require users uid [uid..]</code> directive in the
+<code>access.conf</code> file where the uid's are separated by
+spaces can possibly prohibit the use of spaces in your usernames.
+Also, please note the <a href="#MAX_FIELD_LEN"><code>MAX_FIELD_LEN</code></a>
+directive somewhere below.
+<p>
+To use the above, the following example could be in your
+<code>access.conf</code> file. Also there is a more elaborate description
+below this example.
+<p>
+
+<code>&lt;directory /web/docs/private&gt;</code>
+<p>
+
+<dl>
+<dt><code>
+Auth_MSQLhost localhost<br>
+</code></dt>
+ <blockquote>or</blockquote>
+<dt><code>
+Auth_MSQLhost datab.machine.your.org
+</code></dt><dd>
+ If this directive is omitted or set to <code>localhost</code>,
+ it is assumed that Apache and the mSQL
+ database run on the same (physical) machine and the faster
+ /dev/msql communication channel will be used. Otherwise,
+ it is the machine to contact by TCP/IP. Consult the mSQL
+ documentation for more information.
+</dd>
+<p>
+
+<dt><code>
+Auth_MSQLdatabase www
+</code></dt><dd>
+ The name of the database on the above machine,
+ which contains *both* the tables for group and
+ for user/passwords. Currently it is not possible
+ to have these split over two databases. Make
+ sure that the <code>msql.acl</code> (access control file) of
+ mSQL does indeed allow the effective uid of the
+ web server read access to this database. Check the
+ httpd.conf file for this uid.
+</dd>
+
+<code><dt>
+Auth_MSQLpwd_table user_records
+</dt></code><dd>
+ This is the table which contain the uid/password combination
+ is specified.
+</dd>
+
+<code><dt>
+Auth_MSQLuid_field User_id <br>
+Auth_MSQLpwd_field Cpasswd
+</dt></code><dd>
+ These two directive specify the field names in the <code>user_record</code>
+ table. If this module is compiled with the <a href="#VITEK"><code>BACKWARD_VITEK</code></a>
+ compatibility switch, the defaults <code>user</code> and <code>password</code> are
+ assumed if you do not specify them. Currently the user_id field
+ *MUST* be a primary key or one must ensure that each user only
+ occurs <b>once</b> in the table. If a uid occurs twice access is
+ denied by default; but see the <code><a href="#ONLY_ONCE">ONLY_ONCE</a></code>
+ compiler directive for more information.
+</dd>
+
+<code><dt>
+Auth_MSQLgrp_table user_records <br>
+Auth_MSQLgrp_field Xgroup <br>
+</dt></code><dd>
+ Optionally one can also specify a table which contains the
+ user/group combinations. This can be the same table which
+ also contains the username/password combinations. However
+ if a user belongs to two or more groups, one will have to
+ use a different table with multiple entries.
+</dd>
+
+<code><dt>
+Auth_MSQL_nopasswd off <br>
+Auth_MSQL_Authoritative on <br>
+Auth_MSQL_EncryptedPasswords on <br>
+</dt></code><dd>
+ These three optional fields (all set to the sensible defaults,
+ so you really do not have to enter them) are described in more
+ detail below. If you choose to set these to any other values then
+ the above, be very sure you understand the security implications and
+ do verify that Apache does what you expect it to do.
+</dd>
+
+<code><dt>
+AuthName example mSQL realm <br>
+AuthType basic
+</dt></code>
+<dd>
+ Normal Apache/NCSA tokens for access control
+ <p>
+ <code>&lt;limit get post head&gt</code><br>
+ <code>order deny,allow </code><br>
+ <code>allow from all </code><br>
+ <p>
+ <code>require valid-user </code><br>
+ <ul><li><code>valid-user</code>; allow in any user which has a valid uid/passwd
+ pair in the above pwd_table.
+ </ul>
+ or<br>
+ <code>require user smith jones </code><br>
+ <ul><li>Limit access to users who have a valid uid/passwd pair in the
+ above pwd_table *and* whose uid is 'smith' or 'jones'. Do note that
+ the uid's are separated by 'spaces' for historic (NCSA) reasons.
+ So allowing uids with spaces might cause problems.
+ </ul>
+ <code>require group has_paid</code><br>
+ <ul><li>Optionally also ensure that the uid has the value 'has_paid' in
+ the group field in the group table.
+ </ul>
+ <code>&lt;limit&gt </code><br>
+</dd>
+</dl>
+
+
+<hr><h2><a name="CompileTimeOptions">Compile Time Options</a></h2>
+
+<dl>
+<dt><code>
+<a name="ONLY_ONCE">#define ONLY_ONCE 1</a>
+</code></dt><dd>
+ If the mSQL table containing the uid/passwd combination does
+ not have the uid field as a primary key, it is possible for the
+ uid to occur more than once in the table with possibly different
+ passwords. When this module is compiled with the <code>ONLY_ONCE</code>
+ directive set, access is denied if the uid occurs more than once in the
+ uid/passwd table. If you choose not to set it, the software takes
+ the first pair returned and ignores any further pairs. The SQL
+ statement used for this is<br>
+ <p><code>"select password form pwd_table where user='UID'"</code><p>
+ this might lead to unpredictable results. For this reason as well
+ as for performance reasons you are strongly advised to make the
+ uid field a primary key. Use at your own peril :-)
+</dd>
+
+<dt><code>
+<a name="KEEP_MSQL_CONNECTION_OPEN">#define KEEP_MSQL_CONNECTION_OPEN</a>
+</code></dt><dd>
+ Normally the (TCP/IP) connection with the database is opened and
+ closed for each SQL query. When the Apache web-server and the database
+ are on the same machine, and /dev/msql is used this does not
+ cause a serious overhead. However when your platform does not
+ support this (see the mSQL documentation) or when the web server
+ and the database are on different machines the overhead can be
+ considerable. When the above directive is set defined the server leaves
+ the connection open, i.e. no call to <code>msqlClose()</code>.
+ If an error occurs an attempt is made to reopen the connection for
+ the next http request.
+ <p>
+ This has a number of very serious drawbacks
+ <ul><li> It costs 2 already rare file-descriptors for each child.
+ <li> It costs msql-connections, typically one per child. The (compiled in)
+ number of connections mSQL can handle is low, typically 6 or 12.
+ which might prohibit access to the mSQL database for later
+ processes.
+ <li> When a child dies, it might not free that connection properly
+ or quick enough.
+ <li> When errors start to occur, connection/file-descriptor resources
+ might become exhausted very quickly.
+ </ul>
+ <p>
+ In short, use this at your own peril and only in a highly controlled and
+ monitored environment.
+</dd>
+
+<dt><code>
+<a name="VITEK">
+#define BACKWARD_VITEK<br></a>
+#define VITEK_uid_name "user"<br>
+#define VITEK_gid_name "passwd"
+</code></dt><dd>
+ A second mSQL auth module for Apache has also been developed by Vivek Khera
+ &lt<a href="mailto:khera@kciLink.com"><code>khera@kciLink.com</code></a>&gt
+ and was subsequently distributed with some early versions of Apache. It
+ can be obtained from
+ <code><a href="ftp://ftp.kcilink.com/pub/">ftp://ftp.kcilink.com/pub/mod_auth_msql.c*</a></code>.
+ Older 'vitek' versions had the field/table names compiled in. Newer
+ versions, v.1.11 have more <code>access.conf</code> configuration
+ options. However these where chosen not to be in line the 'ewse'
+ version of this module. Also, the 'vitek' module does not give group
+ control or 'empty' password control.
+ <p>
+ To get things slightly more in line this version (0.9) should
+ be backward compatible with the 'vitek' module by:
+ <ul><li> Adding support for the <code>Auth_MSQL_EncryptedPasswords</code> on/off functionality
+ <li> Adding support for the different spelling of the 4 configuration
+ tokens for user-table-name, user/password-field-name and dbase-name.
+ <li> Setting some field names to a default which used to be hard
+ coded in in older 'vitek' modules.
+ </ul>
+ <p>
+ If this troubles you, remove the 'BACKWARD_VITEK' define.
+</dd>
+
+<dt><code>
+<a name="MAX_FIELD_LEN">
+#define MAX_FIELD_LEN (64)<br>
+#define MAX_QUERY_LEN (32+24+MAX_FIELD_LEN*2+3*MSQL_FIELD_NAME_LEN+1*MSQL_TABLE_NAME_LEN)<br></a>
+</code></dt><dd>
+ In order to avoid using the very large <code>HUGE_STRING_LENGTH</code>, the above two compile
+ time directives are supplies. The <code>MAX_FIELD_LEN</code> contains the maximum number of
+ characters in your user, password and group fields. The maximum query length is derived
+ from those values.
+ <p>
+ We only do the following two queries:
+ <ul><li>For the user/passwd combination
+ <p><code>"select PWDFIELD from PWDTABLE where USERFIELD='UID'"</code><br>
+ <li>Optionally for the user/group combination:
+ <p><code>"select GROUPFIELD from GROUPTABLE where USERFIELD='UID' and GROUPFIELD='GID'"</code><br>
+ </ul>
+ <p>
+ This leads to the above limit for the query string. We are ignoring escaping a wee bit here
+ assuming not more than 24 escapes.)
+</dd>
+</dl>
+
+
+<hr><h2><a name="RevisionHistory">Revision History</a></h2>
+
+This version: 23 Nov 1995, 24 Feb 1996, 16 May 1996.
+
+<dl>
+
+<dt>Version 0.0<br></dt>
+ <dd>First release
+ </dd>
+<dt>Version 0.1<br></dt>
+ <dd>Update to Apache 1.00
+ </dd>
+<dt>Version 0.2<br></dt>
+ <dd>Added lines which got missing God knows when
+ and which did the valid-user authentication no good at all !
+ </dd>
+<dt>Version 0.3<br></dt>
+ <dd>Added '<code>Auth_MSQL_nopasswd</code>' option
+ </dd>
+<dt>Version 0.4<br></dt>
+ <dd>Cleaned out the error messages mess.
+ </dd>
+<dt>Version 0.6<br></dt>
+ <dd>Inconsistency with gid/grp in comment/token/source
+ Make sure you really use '<code>Auth_MSQLgrp_field</code>'
+ as indicated above.
+ </dd>
+<dt>Version 0.7<br></dt>
+ <dd><code>*host</code> to <code>host</code> fixed. Credits
+ go to Rob Stout, &lt;stout@lava.et.tudelft.nl&gt; for
+ spotting this one.
+ </dd>
+<dt>Version 0.8<br></dt>
+ <dd>Authoritative directive added. See above.
+ </dd>
+<dt>Version 0.9<br></dt>
+ <dd><code>palloc</code> return code check(s), should be
+ backward compatible with 1.11 version of Vivek Khera
+ &lt;khera@kciLink.com&gt; msql
+ module, fixed broken err msg in group control, changed
+ command table messages to make more sense when displayed
+ in that new module management tool. Added
+ <code>Auth_MSQL_EncryptedPasswords</code> on/off functionality.
+ msqlClose() statements added upon error. Support for
+ persistent connections with the mSQL database (riscy).
+ Escaping of ' and \. Replaced some
+ <code>MAX_STRING_LENGTH</code> claims.
+ </dd>
+</dl>
+
+
+<hr><h2><a name="Person">Contact/person to blame</a></h2>
+
+This module was written for the
+<a href="http://ewse.ceo.org">European Wide Service Exchange</a> by
+&lt<a href="mailto:Dirk.vanGulik@jrc.it"><code>Dirk.vanGulik@jrc.it</code></a>&gt.
+Feel free to contact me if you have any problems, ice-creams or bugs. This
+documentation, courtesy of Nick Himba, <a href="mailto:himba@cs.utwente.nl">
+<code>&lt;himba@cs.utwente.nl&gt;</code></a>.
+<p>
+
+
+<hr><h2><a NAME="Sourcecode">Sourcecode</a></h2>
+
+The source code can be found at <a href="http://www.apache.org"><code>
+http://www.apache.org</code></a>. A snapshot of a development version
+usually resides at <a href="http://me-www.jrc.it/~dirkx/mod_auth_msql.c"><code>
+http://me-www.jrc.it/~dirkx/mod_auth_msql.c</code></a>. Please make sure
+that you always quote the version you use when filing a bug report.
+<p>
+Furthermore a test/demonstration suite (which assumes that you have
+both mSQL and Apache compiled and installed) is available at the contrib
+section of <a href="ftp://ftp.apache.org/apache/dist/contrib"><code>
+ftp://ftp.apache.org/apache/dist/contrib</code></a> or
+<a href="http://me-www.jrc.it/~dirkx/apache-msql-demo.tar.gz"><code>
+http://me-www.jrc.it/~dirkx/apache-msql-demo.tar.gz</code></a> and
+its <a href="http://me-www.jrc.it/~dirkx/apache-msql-demo"><code>
+README</code></a> file.
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_browser.html b/usr.sbin/httpd/htdocs/manual/mod/mod_browser.html
new file mode 100644
index 00000000000..47ec81b760a
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_browser.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_browser</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_browser</H1>
+
+This module is contained in the <code>mod_browser.c</code> file, and
+is compiled in by default with Apache 1.2 and above. It provides for
+setting environment variables based on the browser.
+
+<h2>Summary</h2>
+
+<p>This module allows you to set environment variables based on the name of
+the browser accessing your document, based on the <code>User-Agent</code>
+header field. This is especially useful when combined with a conditional
+HTML language such as <a href="mod_include.html">XSSI</a> or PHP, and
+can provide for simple browser-based negotiation of HTML features.</p>
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#browsermatch">BrowserMatch</A>
+<li><A HREF="#browsermatchnocase">BrowserMatchNoCase</A>
+</ul>
+
+<hr>
+
+<h2><A name="browsermatch">BrowserMatch</A></h2>
+<strong>Syntax:</strong> BrowserMatch <em>regex attr1 attr2...</em><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> base<br>
+<strong>Module:</strong> mod_browser<br>
+<strong>Compatibility:</strong> Apache 1.2 and above<p>
+
+The BrowserMatch directive defines environment variables based on the
+User-Agent
+header. The first argument should be a POSIX.2 extended regular
+expression (similar to an egrep-style regex). The rest of the arguments
+give names of variables to set. These take the form of either
+"<code>varname</code>", "<code>!varname</code>" or
+"<code>varname=value</code>". In the first form, the value will be set
+to "1". The second will remove the given variable if already defined,
+and the third will set the variable to the value given by <code>value</code>. If a User-Agent
+string matches more than one entry, they will
+be merged. Entries are processed in the order they appear, and later
+entries can override earlier ones.
+
+<p>For example:</p>
+<pre>
+ BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
+ BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
+ BrowserMatch MSIE !javascript
+</pre>
+
+<p><h2><A name="browsermatchnocase">BrowserMatchNoCase</A></h2>
+<strong>Syntax:</strong> BrowserMatchNoCase <em>regex attr1 attr2...</em><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> base<br>
+<strong>Module:</strong> mod_browser<br>
+<strong>Compatibility:</strong> Apache 1.2 and above
+
+<p>The <code>BrowserMatchNoCase</code> directive is semantically identical to
+ the <a href="#browsermatch"><code>BrowserMatch</code></a>
+ directive. However, it provides for case-insensitive matching. For
+ example:</p>
+<pre>
+ BrowserMatchNoCase mac platform=macintosh
+ BrowserMatchNoCase win platform=windows
+</pre>
+
+
+<p>
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cern_meta.html b/usr.sbin/httpd/htdocs/manual/mod/mod_cern_meta.html
new file mode 100644
index 00000000000..3eb508f9997
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cern_meta.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Module mod_cern_meta</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_cern_meta</H1>
+
+This module is contained in the <code>mod_cern_meta.c</code> file, and
+is not compiled in by default. It provides for CERN httpd metafile
+semantics. It is only available in Apache 1.1 and later.
+
+<h2>Summary</h2>
+
+Emulate the CERN HTTPD Meta file semantics. Meta files are HTTP
+headers that can be output in addition to the normal range of headers
+for each file accessed. They appear rather like the Apache
+.asis files, and are able to provide a crude way of influencing
+the Expires: header, as well as providing other curiosities.
+There are many ways to manage meta information, this one was
+chosen because there is already a large number of CERN users
+who can exploit this module.
+
+<p>More information on the
+<a href="http://www.w3.org/pub/WWW/Daemon/User/Config/General.html#MetaDir
+">CERN metafile semantics</a> is available.
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#metadir">MetaDir</A>
+<li><A HREF="#metasuffix">MetaSuffix</A>
+</ul>
+
+<hr>
+
+<h2><A name="metadir">MetaDir</A></h2>
+<strong>Syntax:</strong> MetaDir <em>directory name</em><br>
+<strong>Default:</strong> <code>MetaDir .web</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_cern_meta<br>
+<strong>Compatibility:</strong> MetaDir is only available in Apache 1.1
+and later.<p>
+
+Specifies the name of the directory in which Apache can find
+meta information files. The directory is usually a 'hidden'
+subdirectory of the directory that contains the file being
+accessed. Set to "<code>.</code>" to look in the same directory as the
+file.
+
+<h2><A name="metasuffix">MetaSuffix</A></h2>
+<strong>Syntax:</strong> MetaSuffix <em>suffix</em><br>
+<strong>Default:</strong> <code>MetaSuffix .meta</code><br>
+<strong>Context:</strong> server config<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_cern_meta<br>
+<strong>Compatibility:</strong> MetaSuffix is only available in Apache 1.1
+and later.<p>
+
+Specifies the file name suffix for the file containing the
+meta information. For example, the default values for the two
+directives will cause a request to <code>
+DOCUMENT_ROOT/somedir/index.html</code> to look in
+<code>DOCUMENT_ROOT/somedir/.web/index.html.meta</code> and will use
+its contents to generate additional MIME header information.
+
+<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html
new file mode 100644
index 00000000000..d1cfa745a5b
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<title>Apache module mod_cgi</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<h1 ALIGN="CENTER">Module mod_cgi</h1>
+
+This module is contained in the <code>mod_cgi.c</code> file, and
+is compiled in by default. It provides for execution of CGI scripts.
+Any file with mime type <code>application/x-httpd-cgi</code> will be
+processed by this module.
+<!--%plaintext &lt;?INDEX {\tt application/x-httpd-cgi} mime type&gt; -->
+<!--%plaintext &lt;?INDEX CGI scripts&gt; -->
+
+<h2>Summary</h2>
+Any file that has the mime type <code>application/x-httpd-cgi</code>
+or handler <code>cgi-script</code> (Apache 1.1 or later)
+will be treated as a CGI script, and run by the server, with its output
+being returned to the client. Files acquire this type either by
+having a name ending in an extension defined by the
+<A HREF="mod_mime.html#addtype">AddType</A> directive, or by being in
+a <A HREF="mod_alias.html#scriptalias">ScriptAlias</A> directory. <p>
+
+When the server invokes a CGI script, it will add a variable called
+<code>DOCUMENT_ROOT</code> to the environment. This variable will contain the
+value of the <A HREF="core.html#documentroot">DocumentRoot</A>
+configuration variable.
+
+<h2>CGI Environment variables</h2>
+The server will set the CGI environment variables as described in the CGI
+specification, with the following provisions:
+<dl>
+<dt>REMOTE_HOST
+<dd>This will only be set if the server has not been compiled with
+<code>MINIMAL_DNS</code>.
+<dt>REMOTE_IDENT
+<dd>This will only be set if
+<A HREF="core.html#identitycheck">IdentityCheck</A> is set to <code>on</code>.
+<dt>REMOTE_USER
+<dd>This will only be set if the CGI script is subject to authentication.
+</dl>
+<P>
+
+<hr>
+
+<h2><a name="cgi_debug">CGI Debugging</a></h2>
+
+Debugging CGI scripts has traditionally been difficult, mainly because
+it has
+not
+been possible to study the output (standard output and error) for
+scripts
+which are failing to run properly. These directives, included in
+Apache 1.2 and later, provide
+more detailed logging of errors when they occur.
+
+<hr>
+
+<h2>CGI Logfile Format</h2>
+
+When configured, the CGI error log logs any CGI which does not execute
+properly. Each CGI script which fails to operate causes several lines
+of information to be logged. The first two lines are always of the
+format:
+
+<pre>
+ %% [<i>time</i>] <i>request-line</i>
+ %% <i>HTTP-status</i> <i>CGI-script-filename</i>
+</pre>
+
+If the error is that CGI script cannot be run, the log file will
+contain
+an extra two lines:
+
+<pre>
+ %%error
+ <i>error-message</i>
+</pre>
+
+Alternatively, if the error is the result of the script returning
+incorrect header information (often due to a bug in the script), the
+following information is logged:
+
+<pre>
+ %request
+ <i>All HTTP request headers received</i>
+ <i>POST or PUT entity (if any)</i>
+ %response
+ <i>All headers output by the CGI script</i>
+ %stdout
+ <i>CGI standard output</i>
+ %stderr
+ <i>CGI standard error</i>
+</pre>
+
+(The %stdout and %stderr parts may be missing if the script did not
+output
+anything on standard output or standard error).
+
+<hr>
+
+<h2>Directives</h2>
+
+<h3><a name="scriptlog">ScriptLog</a></h3>
+
+<b>Syntax:</b> ScriptLog <i>filename</i><br>
+<b>Default:</b> none<br>
+<b>Context:</b> resource config<br>
+<b>Status:</b> mod_cgi
+<p>
+
+The <tt>ScriptLog</tt> directive sets the CGI script error logfile.
+If no ScriptLog is given, no error log is created. If given, any
+CGI errors are logged into the filename given as argument. If this
+is a relative file or path it is taken relative to the server root.
+
+<P>This log will be opened as the user the child processes run as,
+ie. the user specified in the main <A HREF="core.html#User">User</A>
+directive. This means that either the directory the script log is
+in needs to be writable by that user or the file needs to be manually
+created and set to be writable by that user. If you place the
+script log in your main logs directory, do <STRONG>NOT</STRONG>
+change the directory permissions to make it writable by the user
+the child processes run as.</P>
+
+<p>Note that script logging is meant to be a debugging feature when
+writing CGI scripts, and is not meant to be activated continuously on
+running servers. It is not optimized for speed or efficiency, and may
+have security problems if used in a manner other than that for which
+it was designed.</p>
+
+<h3><a name="scriptloglength">ScriptLogLength</a></h3>
+
+<b>Syntax:</b> ScriptLogLength <i>size</i><br>
+<b>Default:</b> 10385760<br>
+<b>Context:</b> resource config<br>
+<b>Status:</b> mod_cgi
+<p>
+
+<tt>ScriptLogLength</tt> can be used to limit the size of the CGI
+script logfile. Since the logfile logs a lot of information per CGI
+error (all request headers, all script output) it can grow to be a big
+file. To prevent problems due to unbounded growth, this directive can
+be used to set an maximum file-size for the CGI logfile. If the file
+exceeds this size, no more information will be written to it.
+
+<h3><a name="scriptlogbuffer">ScriptLogBuffer</a></h3>
+
+<b>Syntax:</b> ScriptLogBuffer <i>size</i><br>
+<b>Default:</b> 1024<br>
+<b>Context:</b> resource config<br>
+<b>Status:</b> mod_cgi
+<p>
+
+The size of any PUT or POST entity body that is logged to the file is
+limited, to prevent the log file growing too big too quickly if large
+bodies are being received. By default, up to 1024 bytes are logged,
+but this can be changed with this directive.
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cookies.html b/usr.sbin/httpd/htdocs/manual/mod/mod_cookies.html
new file mode 100644
index 00000000000..5f76d8f736f
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cookies.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_cookies</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_cookies</h1>
+
+This module is contained in the <code>mod_cookies.c</code> file, and
+is not compiled in by default. It provides for Netscape(TM) cookies.
+There is no documentation available for this module.
+
+
+<menu>
+<li><A HREF="#cookielog">CookieLog</A>
+</menu>
+<hr>
+
+
+<h2><A name="cookielog">CookieLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt CookieLog} directive&gt; -->
+<strong>Syntax:</strong> CookieLog <em>filename</em><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Experimental<br>
+<strong>Module:</strong> mod_cookies<p>
+
+The CookieLog directive sets the filename for logging of cookies.
+The filename is relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
+<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_digest.html b/usr.sbin/httpd/htdocs/manual/mod/mod_digest.html
new file mode 100644
index 00000000000..ff6c0a6e153
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_digest.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_digest</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_digest</h1>
+
+This module is contained in the <code>mod_digest.c</code> file, and is
+not compiled in by default. It is only available in Apache 1.1 and
+later. It provides for user authentication using MD5 Digest
+Authentication.
+
+
+<menu>
+<li><A HREF="#authdigestfile">AuthDigestFile</A>
+</menu>
+<hr>
+
+
+<h2><A name="authdigestfile">AuthDigestFile</A></h2>
+<strong>Syntax:</strong> AuthDigestFile <em>filename</em><br>
+<Strong>Context:</strong> directory, .htaccess<br>
+<Strong>Override:</strong> AuthConfig<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_digest<p>
+
+<p>The AuthDigestFile directive sets the name of a textual file containing
+the list
+of users and encoded passwords for digest authentication.
+<em>Filename</em>
+is the absolute path to the user file.</p>
+<p>The digest file uses a special format. Files in this format can be
+created using the "htdigest" utility found in the support/ subdirectory of
+the Apache distribution.</p>
+
+<hr>
+
+<h3>Using Digest Authentication</h3>
+
+<p>Using MD5 Digest authentication is very simple. Simply set up
+authentication normally. However, use "AuthType Digest" and
+"AuthDigestFile" instead of the normal "AuthType Basic" and
+"AuthUserFile". Everything else should remain the same.</p>
+
+<p>MD5 authentication provides a more secure password system, but only
+works with supporting browsers. As of this writing (July 1996), the
+majority of browsers do not support digest authentication. Therefore, we
+do not recommend using this feature on a large Internet site. However, for
+personal and intra-net use, where browser users can be controlled, it is
+ideal.</p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html
new file mode 100644
index 00000000000..43beb8f145c
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_dir.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_dir</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_dir</H1>
+
+This module is contained in the <code>mod_dir.c</code> file, and
+is compiled in by default. It provides for directory indexing.
+
+<h2>Summary</h2>
+This module controls the directory indexing. The index of a directory
+can come from one of two sources:
+<ul>
+<li>A file written by the user, typically called <code>index.html</code>.
+The <A HREF="#directoryindex">DirectoryIndex</A> directive sets the name
+of this file.
+<li>Otherwise, a listing generated by the server. The other directives
+control the format of this listing. The <A HREF="#addicon">AddIcon</A>,
+<A HREF="#addiconbyencoding">AddIconByEncoding</A> and
+<A HREF="#addiconbytype">AddIconByType</A> are used to set a list of
+icons to display for various file types; for each file listed, the
+first icon listed that matches the file is displayed.
+</ul>
+
+
+<h2>Directives</h2>
+
+<menu>
+<li><A HREF="#addalt">AddAlt</A>
+<li><A HREF="#addaltbyencoding">AddAltByEncoding</A>
+<li><A HREF="#addaltbytype">AddAltByType</A>
+<li><A HREF="#adddescription">AddDescription</A>
+<li><A HREF="#addicon">AddIcon</A>
+<li><A HREF="#addiconbyencoding">AddIconByEncoding</A>
+<li><A HREF="#addiconbytype">AddIconByType</A>
+<li><A HREF="#defaulticon">DefaultIcon</A>
+<li><A HREF="#directoryindex">DirectoryIndex</A>
+<li><A HREF="#fancyindexing">FancyIndexing</A>
+<li><A HREF="#headername">HeaderName</A>
+<li><A HREF="#indexignore">IndexIgnore</A>
+<li><A HREF="#indexoptions">IndexOptions</A>
+<li><A HREF="#readmename">ReadmeName</A>
+</menu>
+<hr>
+
+<A name="addalt"><h2>AddAlt</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddAlt} directive&gt; -->
+<strong>Syntax:</strong> AddAlt <em>string file file...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the alternate text to display for a file, instead of an icon, for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>File</em> is a file
+extension, partial filename, wild-card expression or full filename for files
+to describe. <em>String</em> is enclosed in double quotes
+(<code>&quot;</code>). This alternate text is displayed if the client is
+image-incapable or has image loading disabled.
+
+<HR>
+<A name="addaltbyencoding"><h2>AddAltByEncoding</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddAltByEncoding} directive&gt; -->
+<strong>Syntax:</strong> AddAltByEncoding <em>string MIME-encoding
+ MIME-encoding...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the alternate text to display for a file, instead of an icon, for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>MIME-encoding</em> is a
+valid content-encoding, such as <SAMP>x-compress</SAMP>.
+<em>String</em> is enclosed in double quotes
+(<code>&quot;</code>). This alternate text is displayed if the client is
+image-incapable or has image loading disabled.
+
+<HR>
+<A name="addaltbytype"><h2>AddAltByType</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddAltByType} directive&gt; -->
+<strong>Syntax:</strong> AddAltByType <em>string MIME-type MIME-type...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the alternate text to display for a file, instead of an icon, for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>MIME-type</em> is a
+valid content-type, such as <SAMP>text/html</SAMP>.
+<em>String</em> is enclosed in double quotes
+(<code>&quot;</code>). This alternate text is displayed if the client is
+image-incapable or has image loading disabled.
+
+<HR>
+
+<A name="adddescription"><h2>AddDescription</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddDescription} directive&gt; -->
+<strong>Syntax:</strong> AddDescription <em>string file file...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the description to display for a file, for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>File</em> is a file
+extension, partial filename, wild-card expression or full filename for files
+to describe. <em>String</em> is enclosed in double quotes
+(<code>&quot;</code>). Example:
+<blockquote><code>AddDescription "The planet Mars" /web/pics/mars.gif
+</code></blockquote><p><hr>
+
+<A name="addicon"><h2>AddIcon</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddIcon} directive&gt; -->
+<strong>Syntax:</strong> AddIcon <em>icon name name ...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the icon to display next to a file ending in <em>name</em> for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>Icon</em> is either a
+(%-escaped) relative URL to the icon, or of the format
+(<em>alttext</em>,<em>url</em>) where <em>alttext</em> is the text tag given
+for an icon for non-graphical browsers.<p>
+
+<em>Name</em> is either ^^DIRECTORY^^ for directories, ^^BLANKICON^^ for
+blank lines (to format the list correctly), a file extension, a wildcard
+expression, a partial filename or a complete filename. Examples:
+<blockquote><code>
+AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm <br>
+AddIcon /icons/dir.xbm ^^DIRECTORY^^ <br>
+AddIcon /icons/backup.xbm *~
+</code></blockquote>
+<A HREF="#addiconbytype">AddIconByType</A> should be used in preference to
+AddIcon, when possible.<p><hr>
+
+<A name="addiconbyencoding"><h2>AddIconByEncoding</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddIconByEncoding} directive&gt; -->
+<strong>Syntax:</strong> AddIconByEncoding <em>icon mime-encoding mime-encoding
+...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the icon to display next to files with
+<em>mime-encoding</em> for <A HREF="#fancyindexing">FancyIndexing</A>.
+<em>Icon</em> is either a (%-escaped) relative URL to the icon, or of the
+format (<em>alttext</em>,<em>url</em>) where <em>alttext</em> is the text tag
+given for an icon for non-graphical browsers.<p>
+
+<em>Mime-encoding</em> is a wildcard expression matching required the
+content-encoding. Examples:
+<blockquote><code>
+AddIconByEncoding /icons/compress.xbm x-compress
+</code></blockquote><p><hr>
+
+<A name="addiconbytype"><h2>AddIconByType</h2></A>
+<!--%plaintext &lt;?INDEX {\tt AddIconByType} directive&gt; -->
+<strong>Syntax:</strong> AddIconByType <em>icon mime-type mime-type ...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+This sets the icon to display next to files of type <em>mime-type</em> for
+<A HREF="#fancyindexing">FancyIndexing</A>. <em>Icon</em> is either a
+(%-escaped) relative URL to the icon, or of the format
+(<em>alttext</em>,<em>url</em>) where <em>alttext</em> is the text tag given
+for an icon for non-graphical browsers.<p>
+<em>Mime-type</em> is a wildcard expression matching required the mime types.
+Examples:
+<blockquote><code>
+AddIconByType (IMG,/icons/image.xbm) image/*
+</code></blockquote><p><hr>
+
+<A name="defaulticon"><h2>DefaultIcon</h2></A>
+<!--%plaintext &lt;?INDEX {\tt DefaultIcon} directive&gt; -->
+<strong>Syntax:</strong> DefaultIcon <em>url</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The DefaultIcon directive sets the icon to display for files when no
+specific icon is known, for <A HREF="#fancyindexing">FancyIndexing</A>.
+<em>Url</em> is a (%-escaped) relative URL to the icon. Examples:
+<blockquote><code>
+DefaultIcon /icon/unknown.xbm
+</code></blockquote><p><hr>
+
+<A name="directoryindex"><h2>DirectoryIndex</h2></A>
+<!--%plaintext &lt;?INDEX {\tt DirectoryIndex} directive&gt; -->
+<strong>Syntax:</strong> DirectoryIndex <em>local-url local-url ...</em><br>
+<strong>Default:</strong> <code>DirectoryIndex index.html</code><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The DirectoryIndex 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 a directory name. <em>Local-url</em> 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:
+<blockquote><code>
+DirectoryIndex index.html
+</code></blockquote>
+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>
+
+Note that the documents do not need to be relative to the directory;
+<blockquote><code>
+DirectoryIndex index.html index.txt /cgi-bin/index.pl</code></blockquote>
+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><hr>
+
+<A name="fancyindexing"><h2>FancyIndexing</h2></A>
+<!--%plaintext &lt;?INDEX {\tt FancyIndexing} directive&gt; -->
+<strong>Syntax:</strong> FancyIndexing <em>boolean</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The FancyIndexing directive sets the FancyIndexing option for a directory.
+<em>Boolean</em> can be <code>on</code> or <code>off</code>. The
+<A HREF="#indexoptions">IndexOptions</A> directive should be used in
+preference.<p><hr>
+
+<A name="headername"><h2>HeaderName</h2></A>
+<!--%plaintext &lt;?INDEX {\tt HeaderName} directive&gt; -->
+<strong>Syntax:</strong> HeaderName <em>filename</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The HeaderName directive sets the name of the file that will be inserted
+at the top of the index listing. <em>Filename</em> is the name of the file
+to include, and is taken to be relative to the directory being indexed.
+The server first attempts to include <em>filename</em><code>.html</code>
+as an HTML document, otherwise it will include <em>filename</em> as plain
+text. Example:
+<blockquote><code>HeaderName HEADER</code></blockquote>
+when indexing the directory <code>/web</code>, the server will first look for
+the HTML file <code>/web/HEADER.html</code> and include it if found, otherwise
+it will include the plain text file <code>/web/HEADER</code>, if it exists.
+
+<p>See also <A HREF="#readmename">ReadmeName</A>.<p><hr>
+
+<A name="indexignore"><h2>IndexIgnore</h2></A>
+<!--%plaintext &lt;?INDEX {\tt IndexIgnore} directive&gt; -->
+<strong>Syntax:</strong> IndexIgnore <em>file file ...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The IndexIgnore directive adds to the list of files to hide when listing
+a directory. <em>File</em> is a file extension, partial filename,
+wildcard expression or full filename for files to ignore. Multiple
+IndexIgnore directives add to the list, rather than the replacing the list
+of ignored files. By default, the list contains `<code>.</code>'. Example:
+<blockquote><code>
+IndexIgnore README .htaccess *~
+</code></blockquote><p><hr>
+
+<A name="indexoptions"><h2>IndexOptions</h2></A>
+<!--%plaintext &lt;?INDEX {\tt IndexOptions} directive&gt; -->
+<strong>Syntax:</strong> IndexOptions <em>option option ...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The IndexOptions directive specifies the behavior of the directory indexing.
+<em>Option</em> can be one of
+<dl>
+<dt>FancyIndexing
+<dd><!--%plaintext &lt;?INDEX {\tt FancyIndexing} index option&gt; -->
+This turns on fancy indexing of directories.
+<dt>IconsAreLinks
+<dd>
+<!--%plaintext &lt;?INDEX {\tt IconsAreLinks} index option&gt; -->
+This makes the icons part of the anchor for the filename, for
+fancy indexing.
+<dt>ScanHTMLTitles
+<dd><!--%plaintext &lt;?INDEX {\tt ScanHTMLTitles} index option&gt; -->
+This enables the extraction of the title from HTML documents for fancy
+indexing. If the file does not have a description given by
+<A HREF="#adddescription">AddDescription</A> then httpd will read the
+document for the value of the TITLE tag. This is CPU and disk intensive.
+<dt>SuppressLastModified
+<dd>
+<!--%plaintext &lt;?INDEX {\tt SuppressLastModified} index option&gt; -->
+This will suppress the display of the last modification date, in fancy
+indexing listings.
+<dt>SuppressSize
+<dd>
+<!--%plaintext &lt;?INDEX {\tt SuppressSize} index option&gt; -->
+This will suppress the file size in fancy indexing listings.
+<dt>SuppressDescription
+<dd>
+<!--%plaintext &lt;?INDEX {\tt SuppressDescription} index option&gt; -->
+This will suppress the file description in fancy indexing listings.
+</dl>
+This default is that no options are enabled. If multiple IndexOptions
+could apply to a directory, then the most specific one is taken complete;
+the options are not merged. For example:
+<blockquote><code>
+&lt;Directory /web/docs&gt; <br>
+IndexOptions FancyIndexing <br>
+&lt;/Directory&gt;<br>
+&lt;Directory /web/docs/spec&gt; <br>
+IndexOptions ScanHTMLTitles <br>
+&lt;/Directory&gt;
+</code></blockquote>
+then only <code>ScanHTMLTitles</code> will be set for the /web/docs/spec
+directory.<p><hr>
+
+<A name="readmename"><h2>ReadmeName</h2></A>
+<!--%plaintext &lt;?INDEX {\tt ReadmeName} directive&gt; -->
+<strong>Syntax:</strong> ReadmeName <em>filename</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_dir<p>
+
+The ReadmeName directive sets the name of the file that will be appended
+to the end of the index listing. <em>Filename</em> is the name of the file
+to include, and is taken to be relative to the directory being indexed.
+The server first attempts to include <em>filename</em><code>.html</code>
+as an HTML document, otherwise it will include <em>filename</em> as plain
+text. Example:
+<blockquote><code>ReadmeName README</code></blockquote>
+when indexing the directory <code>/web</code>, the server will first look for
+the HTML file <code>/web/README.html</code> and include it if found, otherwise
+it will include the plain text file <code>/web/README</code>, if it exists.
+
+<p>See also <A HREF="#headername">HeaderName</A>.<p>
+
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_dld.html b/usr.sbin/httpd/htdocs/manual/mod/mod_dld.html
new file mode 100644
index 00000000000..55ee488f1f0
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_dld.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_dld</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_dld</h1>
+
+This module is contained in the <code>mod_dld.c</code> file, and is not
+compiled in by default. It provides for loading of executable code
+and modules into the server at start-up time, using the GNU dld library.
+
+<h2>Summary</h2>
+
+The optional dld module is a proof-of-concept piece of code which
+loads other modules into the server as it is configuring itself (the
+first time only; for now, rereading the config files cannot affect the
+state of loaded modules), using the GNU dynamic linking library, DLD.
+It isn't compiled into the server by default, since not everyone has
+DLD, but it works when I try it. (Famous last words.) <p>
+
+Note that for some reason, <code>LoadFile /lib/libc.a</code> seems to be
+required for just about everything.<p>
+
+Note: that DLD needs to read the symbol table out of the server binary
+when starting up; these commands will fail if the server can't find
+its own binary when it starts up, or if that binary is stripped.<p>
+
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#loadfile">LoadFile</A>
+<li><A HREF="#loadmodule">LoadModule</A>
+</ul>
+<hr>
+
+
+<h2><A name="loadfile">LoadFile</A></h2>
+<!--%plaintext &lt;?INDEX {\tt LoadFile} directive&gt; -->
+<strong>Syntax:</strong> LoadFile <em>filename filename ...</em><br>
+<Strong>Context:</strong> server config<br>
+<strong>Status:</strong> Experimental<br>
+<strong>Module:</strong> mod_dld<p>
+
+The LoadFile directive links in the named object files or libraries when
+the server is started; this is used to load additional code which
+may be required for some module to work. <em>Filename</em> is relative
+to <A HREF="core.html#serverroot">ServerRoot</A>.<p><hr>
+
+<h2><A name="loadmodule">LoadModule</A></h2>
+<!--%plaintext &lt;?INDEX {\tt LoadModule} directive&gt; -->
+<strong>Syntax:</strong> LoadModule <em>module filename</em><br>
+<Strong>Context:</strong> server config<br>
+<strong>Status:</strong> Experimental<br>
+<strong>Module:</strong> mod_dld<p>
+
+The LoadModule directive links in the object file or library <em>filename</em>
+and adds the module structure named <em>module</em> to the list of active
+modules. <em>Module</em> is the name of the external variable of type
+<code>module</code> in the file. Example:
+<blockquote><code>
+LoadModule ai_backcompat_module modules/mod_ai_backcompat.o<br>
+LoadFile /lib/libc.a
+</code></blockquote>
+loads the module in the modules subdirectory of the ServerRoot.<p>
+
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html
new file mode 100644
index 00000000000..f3b602fdd72
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_env</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_env</H1>
+
+This module is contained in the <code>mod_env.c</code> file, and
+is not compiled in by default. It provides for
+passing environment variables to CGI/SSI scripts. Is is only available
+in Apache 1.1 and later.
+
+<h2>Summary</h2>
+
+This module allows Apache's CGI and SSI environment to inherit
+environment variables from the shell which invoked the httpd process.
+CERN web-servers are able to do this, so this module is especially
+useful to web-admins who wish to migrate from CERN to Apache without
+rewriting all their scripts
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#passenv">PassEnv</A>
+<li><A HREF="#setenv">SetEnv</A>
+<li><A HREF="#unsetenv">UnsetEnv</A>
+</ul>
+
+<hr>
+
+<h2><A name="passenv">PassEnv</A></h2>
+<strong>Syntax:</strong> PassEnv <em>variable variable ...</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_env<br>
+<strong>Compatibility:</strong> PassEnv is only available in
+Apache 1.1 and later.<p>
+
+Specifies one or more environment variables to pass to CGI scripts
+from the server's own environment. Example:
+<pre>
+ PassEnv LD_LIBRARY_PATH
+</pre>
+
+<HR>
+
+<h2><A name="setenv">SetEnv</A></h2>
+<strong>Syntax:</strong> SetEnv <em>variable value</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_env<br>
+<strong>Compatibility:</strong> SetEnv is only available in
+Apache 1.1 and later.<p>
+
+Sets an environment variable, which is then passed on to CGI
+scripts. Example:
+<pre>
+ SetEnv SPECIAL_PATH /foo/bin
+</pre>
+
+<hr>
+
+<h2><A name="unsetenv">UnsetEnv</A></h2>
+<strong>Syntax:</strong> UnsetEnv <em>variable variable ...</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_env<br>
+<strong>Compatibility:</strong> UnsetEnv is only available in
+Apache 1.1 and later.<p>
+
+Removes one or more environment variables from those passed on to
+CGI scripts. Example:
+<pre>
+ UnsetEnv LD_LIBRARY_PATH
+</pre>
+
+
+
+<p>
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_example.html b/usr.sbin/httpd/htdocs/manual/mod/mod_example.html
new file mode 100644
index 00000000000..013966e9f92
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_example.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+ <HEAD>
+ <TITLE>Apache module mod_example</TITLE>
+ </HEAD>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+ >
+ <DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+ <H1 ALIGN="CENTER">Module mod_example</h1>
+ <P>
+ This module is contained in the <CODE>modules/mod_example.c</CODE> file, and
+ <STRONG>is not</STRONG> compiled in by default. It illustrates many of
+ the aspects of the
+ <A
+ HREF="../misc/API.html"
+ REL="Help"
+ >Apache 1.2 API</A>
+ and, when used, demonstrates the manner in which module callbacks are
+ triggered by the server.
+ </P>
+ <H2>Summary</H2>
+ <P>
+ The files in the <CODE>src/modules/example directory</CODE> under the
+ Apache distribution directory tree are provided as an example to those
+ that wish to write modules that use the Apache API.
+ </P>
+ <P>
+ The main file is <CODE>mod_example.c</CODE>, which illustrates all
+ the different callback mechanisms and call syntaces. By no means does
+ an add-on module need to include routines for all of the callbacks -
+ quite the contrary!
+ </P>
+ <P>
+ The example module is an actual working module. If you link it into
+ your server, enable the "example-handler" handler for a location, and
+ then browse to that location, you will see a display of
+ some of the tracing the example module did as the various callbacks
+ were made.
+ </P>
+ <P>
+ To include the example module in your server, follow the steps below:
+ </P>
+ <OL>
+ <LI>Uncomment the "Module example_module" line near the bottom of
+ the <CODE>src/Configuration</CODE> file. If there isn't one, add
+ it; it should look like this:
+ <PRE>
+ Module example_module modules/example/mod_example.o
+ </PRE>
+ </LI>
+ <LI>Run the <CODE>src/Configure</CODE> script
+ ("<SAMP>cd&nbsp;src;&nbsp;./Configure</SAMP>"). This will
+ build the Makefile for the server itself, and update the
+ <CODE>src/modules/Makefile</CODE> for any additional modules you
+ have requested from beneath that subdirectory.
+ </LI>
+ <LI>Make the server (run "<SAMP>make</SAMP>" in the <CODE>src</CODE>
+ directory).
+ </LI>
+ </OL>
+ <P>
+ To add another module of your own:
+ </P>
+ <OL TYPE="A">
+ <LI><SAMP>mkdir src/modules/<EM>mymodule</EM></SAMP>
+ </LI>
+ <LI><SAMP>cp src/modules/example/* src/modules/<EM>mymodule</EM></SAMP>
+ </LI>
+ <LI>Modify the files in the new directory.
+ </LI>
+ <LI>Follow steps [1] through [3] above, with appropriate changes.
+ </LI>
+ </OL>
+ <H3>
+ Using the <SAMP>mod_example</SAMP> Module
+ </H3>
+ <P>
+ To activate the example module, include a block similar to the
+ following in your <SAMP>srm.conf</SAMP> file:
+ </P>
+ <PRE>
+ &lt;Location /example-info&gt;
+ SetHandler example-handler
+ &lt;/Location&gt;
+ </PRE>
+ <P>
+ As an alternative, you can put the following into a
+ <A
+ HREF="core.html#accessfilename"
+ ><SAMP>.htaccess</SAMP></A>
+ file and then request the file &quot;test.example&quot; from that
+ location:
+ </P>
+ <PRE>
+ AddHandler example-handler .example
+ </PRE>
+ <P>
+ After reloading/restarting your server, you should be able to browse
+ to this location and see the brief display mentioned earlier.
+ </P>
+ <H2>Directives</H2>
+ <P>
+ <UL>
+ <LI><A HREF="#example">Example</A>
+ </LI>
+ </UL>
+ </P>
+ <HR>
+ <H2><A NAME="example">
+ Example
+ </A></H2>
+ <P>
+ <STRONG>Syntax:</STRONG> Example
+ <BR>
+ <STRONG>Default:</STRONG> None
+ <BR>
+ <STRONG>Context:</STRONG> server config, virtual host, directory, .htaccess
+ <BR>
+ <STRONG>Override:</STRONG> Options
+ <BR>
+ <STRONG>Status:</STRONG> Extension
+ <BR>
+ <STRONG>Module:</STRONG> mod_example
+ </P>
+ <P>
+ The Example directive activates the example module's content handler
+ for a particular location or file type. It takes no arguments. If
+ you browse to an URL to which the example content-handler applies, you
+ will get a display of the routines within the module and how and in
+ what order they were called to service the document request.
+ </P>
+ <HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+ </BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_expires.html b/usr.sbin/httpd/htdocs/manual/mod/mod_expires.html
new file mode 100644
index 00000000000..af226b259fa
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_expires.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+ <HEAD>
+ <TITLE>Apache module mod_expires</TITLE>
+ </HEAD>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+ >
+ <DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+ <H1 ALIGN="CENTER">Module mod_expires</H1>
+ <P>
+ This module is contained in the <CODE>mod_expires.c</CODE> file, and
+ is <STRONG>not</STRONG> compiled in by default. It provides for the
+ generation of <CODE>Expires</CODE> headers according to user-specified
+ criteria.
+ </P>
+ <H2>Summary</H2>
+ <P>
+ This module controls the setting of the <CODE>Expires</CODE> HTTP
+ header in server responses. The expiration date can set to be
+ relative to either the time the source file was last modified, or to
+ the time of the client access.
+ </P>
+ <P>
+ The <CODE>Expires</CODE> HTTP header is an instruction to the client
+ about the document's validity and persistence. If cached, the document
+ may be fetched from the cache rather than from the source until this
+ time has passed. After that, the cache copy is considered
+ &quot;expired&quot; and invalid, and a new copy must be obtained from
+ the source.
+ </P>
+ <H2>Directives</H2>
+ <P>
+ <MENU>
+ <LI><A
+ HREF="#expiresactive"
+ >ExpiresActive</A>
+ </LI>
+ <LI><A
+ HREF="#expiresbytype"
+ >ExpiresByType</A>
+ </LI>
+ <LI><A
+ HREF="#expiresdefault"
+ >ExpiresDefault</A>
+ </LI>
+ </MENU>
+ <HR>
+ <H2><A NAME="expiresactive">
+ ExpiresActive directive
+ </A></H2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresActive} directive&gt; -->
+ <P>
+ <STRONG>Syntax:</STRONG> ExpiresActive <EM>boolean</EM>
+ <BR>
+ <STRONG>Context:</STRONG> server config, virtual host, directory, .htaccess
+ <br>
+ <STRONG>Override:</STRONG> Indexes
+ <br>
+ <STRONG>Status:</STRONG> Extension
+ <br>
+ <STRONG>Module:</STRONG> mod_expires
+ </P>
+ <P>
+ This directive enables or disables the generation of the
+ <CODE>Expires</CODE> header for the document realm in question. (That
+ is, if found in an <CODE>.htaccess</CODE> file, for instance, it
+ applies only to documents generated from that directory.) If set to
+ <EM><CODE>Off</CODE></EM>, no <CODE>Expires</CODE> header will be
+ generated for any document in the realm (unless overridden at a lower
+ level, such as an <CODE>.htaccess</CODE> file overriding a server
+ config file). If set to <EM><CODE>On</CODE></EM>, the header will be
+ added to served documents according to the criteria defined by the
+ <A
+ HREF="#expiresbytype"
+ >ExpiresByType</A>
+ and
+ <A
+ HREF="#expiresdefault"
+ >ExpiresDefault</A>
+ directives (<EM>q.v.</EM>).
+ </P>
+ <P>
+ Note that this directive does not guarantee that an
+ <CODE>Expires</CODE> header will be generated. If the criteria aren't
+ met, no header will be sent, and the effect will be as though this
+ directive wasn't even specified.
+ </P>
+ <HR>
+ <H2><A NAME="expiresbytype">
+ ExpiresByType directive
+ </A></H2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresByType} directive&gt; -->
+ <P>
+ <STRONG>Syntax:</STRONG> ExpiresByType <EM>mime-type &lt;code&gt;seconds</EM>
+ <BR>
+ <STRONG>Context:</STRONG> server config, virtual host, directory, .htaccess
+ <br>
+ <STRONG>Override:</STRONG> Indexes
+ <br>
+ <STRONG>Status:</STRONG> Extension
+ <br>
+ <STRONG>Module:</STRONG> mod_expires
+ </P>
+ <P>
+ This directive defines the value of the <CODE>Expires</CODE> header
+ generated for documents of the specified type (<EM>e.g.</EM>,
+ <CODE>text/html</CODE>). The second argument sets the number of
+ seconds that will be added to a base time to construct the expiration
+ date.
+ </P>
+ <P>
+ The base time is either the last modification time of the file, or the
+ time of the client's access to the document. Which should be used is
+ specified by the <CODE><EM>&lt;code&gt;</EM></CODE> field;
+ <STRONG>M</STRONG> means that the file's last modification time should
+ be used as the base time, and <STRONG>A</STRONG> means the client's
+ access time should be used.
+ </P>
+ <P>
+ The difference in effect is subtle. If <EM>M</EM> is used, all current
+ copies of the document in all caches will expire at the same time,
+ which can be good for something like a weekly notice that's always
+ found at the same URL. If <EM>A</EM> is used, the date of expiration
+ is different for each client; this can be good for image files that
+ don't change very often, particularly for a set of related documents
+ that all refer to the same images (<EM>i.e.</EM>, the images will be
+ accessed repeatedly within a relatively short timespan).
+ </P>
+ <P>
+ <STRONG>Example:</STRONG>
+ </P>
+ <P>
+ <PRE>
+ ExpiresActive On # enable expirations
+ ExpiresByType image/gif A2592000 # expire GIF images after a month
+ # in the client's cache
+ ExpiresByType text/html M604800 # HTML documents are good for a
+ # week from the time they were
+ # changed, period
+ </PRE>
+ </P>
+ <P>
+ Note that this directive only has effect if <CODE>ExpiresActive
+ On</CODE> has been specified. It overrides, for the specified MIME
+ type <EM>only</EM>, any expiration date set by the
+ <A
+ HREF="#expiresdefault"
+ >ExpiresDefault</A>
+ directive.
+ </P>
+ <HR>
+ <H2><A NAME="expiresdefault">
+ ExpiresDefault directive
+ </A></H2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresDefault} directive&gt; -->
+ <P>
+ <STRONG>Syntax:</STRONG> ExpiresDefault <EM>&lt;code&gt;seconds</EM>
+ <BR>
+ <STRONG>Context:</STRONG> server config, virtual host, directory, .htaccess
+ <br>
+ <STRONG>Override:</STRONG> Indexes
+ <br>
+ <STRONG>Status:</STRONG> Extension
+ <br>
+ <STRONG>Module:</STRONG> mod_expires
+ </P>
+ <P>
+ This directive sets the default algorithm for calculating the
+ expiration time for all documents in the affected realm. It can be
+ overridden on a type-by-type basis by the
+ <A
+ HREF="#expiresbytype"
+ >ExpiresByType</A>
+ directive. See the description of that directive for details about
+ the syntax of the argument.
+ </P>
+ <HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+ </BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_headers.html b/usr.sbin/httpd/htdocs/manual/mod/mod_headers.html
new file mode 100644
index 00000000000..212c519bf7e
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_headers.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_headers</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<h1 ALIGN="CENTER">Module mod_headers</h1>
+
+The optional headers module allows for the customization of HTTP
+response headers. Headers can be merged, replaced or removed. The
+directives described in this document are only available if Apache is
+compiled with <b>mod_headers.c</b>.
+
+<hr>
+
+<h2>Directive</h2>
+<ul>
+<li><A HREF="#header">Header</A>
+</ul>
+
+<hr>
+
+<h2><A name="header">Header</A></h2>
+<strong>Syntax:</strong> Header [ set | append | add ] <em>header</em> <em>value</em><br>
+<strong>Syntax:</strong> Header unset <em>header</em><br>
+<strong>Context:</strong> server config, virtual host, access.conf, .htaccess<br>
+<strong>Status:</strong> optional<br>
+<strong>Module:</strong> mod_header<p>
+
+This directive can replace, merge or remove HTTP response headers. The
+action it performs is determined by the first argument. This can be one
+of the following values:
+
+<ul>
+<li><b>set</b><br>
+ The response header is set, replacing any previous header with this name
+
+<li><b>append</b><br>
+ The response header is appended to any existing header of the same
+ name. When a new value is merged onto an existing header it is
+ separated from the existing header with a comma. This is the HTTP standard
+ way of giving a header multiple values.
+
+<li><b>add</b><br>
+ The response header is added to the existing set of headers, even if
+ this header already exists. This can result in two (or more) headers
+ having the same name. This can lead to unforeseen consequences, and in
+ general "append" should be used instead.
+
+<li><b>unset</b><br>
+ The response header of this name is removed, if it exists. If there are
+ multiple headers of the same name, only the first one set will be removed.
+</ul>
+
+This argument is followed by a header name, which can include the
+final colon, but it is not required. Case is ignored. For
+add, append and set a value is given as the third argument. If this
+value contains spaces, it should be surrounded by double quotes.
+For unset, no value should be given.
+
+<h3>Order of Processing</h3>
+
+The Header directive can occur almost anywhere within the server
+configuration. It is valid in the main server config and virtual host
+sections, inside &lt;Directory&gt;, &lt;Location&gt; and &lt;Files&gt;
+sections, and within .htaccess files.
+<p>
+The Header directives are processed in the following order:
+<ol>
+<li>main server
+<li>virtual host
+<li>&lt;Directory&gt; sections and .htaccess
+<li>&lt;Location&gt;
+<li>&lt;Files&gt;
+</ol>
+
+Order is important. These two headers have a different effect if reversed:
+<pre>
+Header append Author "John P. Doe"
+Header unset Author
+</pre>
+
+This way round, the Author header is not set. If reversed, the Author
+header is set to "John P. Doe".
+<p>
+
+The Header directives are processed just before the response is sent
+by its handler. These means that some headers that are added just
+before the response is sent cannot be unset or overridden. This
+includes headers such as "Date" and "Server".
+<P>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_imap.html b/usr.sbin/httpd/htdocs/manual/mod/mod_imap.html
new file mode 100644
index 00000000000..25875b86002
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_imap.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<title>Apache module mod_imap</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<h1 ALIGN="CENTER">Module mod_imap</h1>
+
+This module is contained in the <code>mod_imap.c</code> file, and is
+compiled in by default. It provides for <code>.map</code> files,
+replacing the functionality of the <code>imagemap</code> CGI
+program. Any directory or document type configured to use the handler
+<code>imap-file</code> (using either <code><A
+HREF="mod_mime.html#addhandler">AddHandler</A> </code> or <code><A
+HREF="mod_mime.html#sethandler">SetHandler</A></code>) will be
+processed by this module.
+
+<h2>Summary</h2>
+
+This module is in the default Apache distribution. The following directive will
+activate files ending with <code>.map</code> as imagemap files:
+
+<blockquote><code>AddHandler imap-file map</code></blockquote>
+
+Note that the following is still supported:
+
+ <blockquote><code>AddType application/x-httpd-imap map</code></blockquote>
+
+However, we are trying to phase out "magic MIME types" so we are deprecating
+this method.
+
+<H2>New Features</H2>
+The imagemap module adds some new features that were not
+possible with previously distributed imagemap programs.<P>
+
+<ul>
+<LI>URL references relative to the Referer: information.
+<LI>Default &lt;BASE&gt; assignment through a new map directive
+<code>base</code>.
+<LI>No need for <code>imagemap.conf</code> file.
+<LI>Point references.
+<LI>Configurable generation of imagemap menus.
+</ul>
+<P>
+
+<h2>Configuration Directives</h2>
+<ul>
+<li><A HREF="#imapmenu">ImapMenu</A>
+<li><A HREF="#imapdefault">ImapDefault</A>
+<li><A HREF="#imapbase">ImapBase</A>
+</ul>
+
+
+<p>
+
+<h3><A name="imapmenu">ImapMenu</A></h3>
+<strong>Syntax:</strong> ImapMenu <code>{none, formatted, semi-formatted,
+ unformatted}</code><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Module:</strong> mod_imap.c<br>
+<strong>Compatibility:</strong> ImapMenu is only available in Apache
+1.1 and later.<p>
+
+The ImapMenu directive determines the action taken if an imagemap file
+is called without valid coordinates.
+<dl>
+ <dt><code>none</code>
+ <dd>If ImapMenu is
+ <code>none</code>, no menu is generated, and the <code>default</code>
+ action is performed.
+ <dt><code>formatted</code>
+ <dd>A <code>formatted</code> menu is the simplest menu. Comments
+ in the imagemap file are ignored. A level one header is
+ printed, then an hrule, then the links each on a separate line.
+ The menu has a consistent, plain look close to that of
+ a directory listing.
+ <dt><code>semiformatted</code>
+ <dd>In the <code>semiformatted</code> menu, comments are printed
+ where they occur in the imagemap file. Blank lines are turned
+ into HTML breaks. No header or hrule is printed, but otherwise
+ the menu is the same as a <code>formatted</code> menu.
+ <dt><code>unformatted</code>
+ <dd>Comments are printed, blank lines are ignored. Nothing is
+ printed that does not appear in the imagemap file. All breaks
+ and headers must be included as comments in the imagemap file.
+ This gives you the most flexibility over the appearance of your
+ menus, but requires you to treat your map files as HTML instead
+ of plaintext.
+</dl>
+
+<p>
+
+<h3><A name="imapdefault">ImapDefault</A></h3>
+<strong>Syntax:</strong> ImapDefault <code>{error, nocontent,
+ map, referer, URL}</code><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Module:</strong> mod_imap.c<br>
+<strong>Compatibility:</strong> ImapDefault is only available in Apache
+1.1 and later.<p>
+
+
+The ImapDefault directive sets the default <code>default</code> used in
+the imagemap files. It's value is overridden by a <code>default</code>
+directive within the imagemap file. If not present, the
+<code>default</code> action is <code>nocontent</code>, which means
+that a <code>204 No Content</code> is sent to the client. In this
+case, the client should continue to display the original page.
+
+<p>
+
+<h3><A name="imapbase">ImapBase</A></h3>
+<strong>Syntax:</strong> ImapBase <code>{map, referer, URL}</code><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Indexes<br>
+<strong>Module:</strong> mod_imap.c<br>
+<strong>Compatibility:</strong> ImapBase is only available in Apache
+1.1 and later.<p>
+
+The ImapBase directive sets the default <code>base</code> used in
+the imagemap files. It's value is overridden by a <code>base</code>
+directive within the imagemap file. If not present, the
+<code>base</code> defaults to <code>http://servername/</code>.
+
+<hr>
+<p>
+
+<h2>Imagemap File</h2>
+The lines in the imagemap files can have one of several formats:
+<blockquote>
+<code>directive value [x,y ...]</code><br>
+<code>directive value "Menu text" [x,y ...]</code><br>
+<code>directive value x,y ... "Menu text"</code><br>
+</blockquote>
+The directive is one of <code>base</code>, <code>default</code>,
+<code>poly</code>, <code>circle</code>, <code>rect</code>, or
+<code>point</code>. The value is an absolute or relative URL, or one
+of the special values listed below. The coordinates are
+<code>x,y</code> pairs separated by whitespace. The quoted text is
+used as the text of the link if a imagemap menu is generated. Lines
+beginning with '#' are comments.
+
+<h3>Imagemap File Directives</h3>
+There are six directives allowed in the imagemap file. The directives
+can come in any order, but are processed in the order they are found
+in the imagemap file.
+<dl>
+<dt><code>base</code> Directive
+<dd>Has the effect of <code>&lt;BASE href="value"&gt;</code>. The
+ non-absolute URLs of the map-file are taken relative to this value.
+ The <code>base</code> directive overrides ImapBase as set in a
+ .htaccess file or in the server configuration files. In the absence
+ of an ImapBase configuration directive, <code>base</code> defaults to
+ <code>http://server_name/</code>. <br>
+ <code>base_uri</code> is synonymous with <code>base</code>. Note that
+ a trailing slash on the URL is significant.
+<p>
+<dt><code>default</code> Directive
+<dd>The action taken if the coordinates given do not fit any of the
+ <code>poly</code>, <code>circle</code> or <code>rect</code>
+ directives, and there are no <code>point</code> directives. Defaults
+ to <code>nocontent</code> in the absence of an ImapDefault
+ configuration setting, causing a status code of <code>204 No
+ Content</code> to be returned. The client should keep the same
+ page displayed.
+<p>
+<dt><code>poly</code> Directive
+<dd>Takes three to one-hundred points, and is obeyed if the user selected
+ coordinates fall within the polygon defined by these points.
+<p>
+<dt><code>circle</code>
+<dd>Takes the center coordinates of a circle and a point on the circle. Is
+ obeyed if the user selected point is with the circle.
+<p>
+<dt><code>rect</code> Directive
+<dd>Takes the coordinates of two opposing corners of a rectangle. Obeyed
+ if the point selected is within this rectangle.
+<p>
+<dt><code>point</code> Directive
+<dd>Takes a single point. The point directive closest to the user
+ selected point is obeyed if no other directives are satisfied.
+ Note that <code>default</code> will not be followed if a
+ <code>point</code> directive is present and valid coordinates are
+ given.
+</dl>
+
+
+
+<h3>Values</h3>
+The values for each of the directives can any of the following:
+<dl>
+ <dt>a URL
+ <dd>The URL can be relative or absolute URL. Relative URLs can
+ contain '..' syntax and will be resolved relative to the
+ <code>base</code> value. <br>
+ <code>base</code> itself will not resolved according to the current
+ value. A statement <code>base mailto:</code> will work properly, though.
+<p>
+ <dt><code>map</code>
+ <dd>Equivalent to the URL of the imagemap file itself. No
+ coordinates are sent with this, so a menu will be generated
+ unless ImapMenu is set to 'none'.
+<p>
+ <dt><code>menu</code>
+ <dd>Synonymous with <code>map</code>.
+<p>
+ <dt><code>referer</code>
+ <dd>Equivalent to the URL of the referring document.
+ Defaults to <code>http://servername/</code> if no Referer:
+ header was present.
+<p>
+ <dt><code>nocontent</code>
+ <dd>Sends a status code of <code>204 No Content</code>,
+ telling the client to keep the same page displayed. Valid for
+ all but <code>base</code>.
+<p>
+ <dt><code>error</code>
+ <dd>Fails with a <code>500 Server Error</code>. Valid for all but
+ <code>base</code>, but sort of silly for anything but
+ <code>default</code>.
+</dl>
+
+<h3>Coordinates</h3>
+<dl>
+ <dt><code>0,0 200,200</code>
+ <dd>A coordinate consists of an <tt>x</tt> and a <tt>y</tt> value
+ separated by a comma. The coordinates are separated from each other
+ by whitespace. To accommodate the way Lynx handles imagemaps, should a
+ user select the coordinate <code>0,0</code>, it is as if
+ no coordinate had been selected.
+</dl>
+
+<h3>Quoted Text</h3>
+<dl>
+ <dt><code>"Menu Text"</code>
+ <dd>After the value or after the coordinates, the line optionally may
+ contain text within double quotes. This string is used as the
+ text for the link if a menu is generated:<br>
+ <code>&lt;a href="http://foo.com/"&gt;Menu text&lt;/a&gt;</code><br>
+ If no quoted text is present, the name of the link will be used
+ as the text:<br>
+ <code>&lt;a href="http://foo.com/"&gt;http://foo.com&lt;/a&gt;</code><br>
+ It is impossible to escape double quotes within this text.
+</dl>
+
+<hr>
+
+<h2>Example Mapfile</h2>
+<blockquote><code>
+#Comments are printed in a 'formatted' or 'semiformatted' menu. <br>
+#And can contain html tags. &lt;hr&gt; <br>
+base referer <br>
+poly map "Could I have a menu, please?" 0,0 0,10 10,10 10,0 <br>
+rect .. 0,0 77,27 "the directory of the referer"<br>
+circle http://www.inetnebr.com/lincoln/feedback/ 195,0 305,27 <br>
+rect another_file "in same directory as referer" 306,0 419,27 <br>
+point http://www.zyzzyva.com/ 100,100 <br>
+point http://www.tripod.com/ 200,200 <br>
+rect mailto:nate@tripod.com 100,150 200,0 "Bugs?" <br>
+</code></blockquote>
+<P>
+
+<h2>Referencing your mapfile</h2>
+<blockquote><code>
+&lt;A HREF="/maps/imagmap1.map"&gt; <br>
+&lt;IMG ISMAP SRC="/images/imagemap1.gif"&gt; <br>
+&lt;/A&gt;
+</code></blockquote><p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_include.html b/usr.sbin/httpd/htdocs/manual/mod/mod_include.html
new file mode 100644
index 00000000000..3ce515b26d8
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_include.html
@@ -0,0 +1,398 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_include</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_include</H1>
+
+This module is contained in the <code>mod_include.c</code> file, and
+is compiled in by default. It provides for server-parsed html
+documents. Several directives beyond the original NCSA definition have been
+included in Apache 1.2 - these are flagged below with the phrase
+"Apache 1.2 and above". Of particular significance are the new flow
+control directives documented at the bottom.
+
+<H2>Enabling Server-Side Includes</H2>
+
+Any document with handler of "server-parsed" will be parsed by this
+module, if the <CODE>Includes</CODE> option is set. If documents
+containing server-side include directives are given the extension
+.shtml, the following directives will make Apache parse them and
+assign the resulting document the mime type of <CODE>text/html</CODE>:
+
+<PRE>
+AddType text/html .shtml
+AddHandler server-parsed .shtml
+</PRE>
+
+The following directive must be given for the directories containing
+the shtml files (typically in a <CODE>&lt;Directory&gt;</CODE> section,
+but this directive is also valid .htaccess files if <CODE>AllowOverride
+Options</CODE> is set):
+
+<PRE>
+Options +Includes
+</PRE>
+
+Alternatively the <A HREF="#xbithack"><CODE>XBitHack</CODE></A>
+directive can be used to parse normal (<CODE>text/html</CODE>) files,
+based on file permissions. <P>
+
+For backwards compatibility, documents with mime type
+<code>text/x-server-parsed-html</code> or
+<code>text/x-server-parsed-html3</code> will also be parsed
+(and the resulting output given the mime type <code>text/html</code>).
+
+<h2>Basic Elements</h2>
+
+The document is parsed as an HTML document, with special commands embedded
+as SGML comments. A command has the syntax:
+
+<blockquote><code>
+&lt;!--#</code><em>element attribute=value attribute=value ...</em>
+<code> --&gt;
+</code></blockquote>
+
+The value will often be enclosed in double quotes; many commands only allow
+a single attribute-value pair. Note that the comment terminator
+(<SAMP>--&gt;</SAMP>) should be preceded by whitespace to ensure that it
+isn't considered part of an SSI token.
+<p>
+The allowed elements are:<p>
+
+<dl>
+
+<dt><strong>config</strong>
+<dd>
+This command controls various aspects of the parsing. The valid attributes
+are:
+<dl>
+<dt>errmsg
+<dd>The value is a message that is sent back to the client if an error occurs
+whilst parsing the document.
+<dt>sizefmt
+<dd>The value sets the format to be used which displaying the size of a file.
+Valid values are <code>bytes</code> for a count in bytes, or
+<code>abbrev</code> for a count in Kb or Mb as appropriate.
+<dt>timefmt
+<dd>The value is a string to be used by the <code>strftime(3)</code> library
+routine when printing dates.
+</dl>
+
+<dt><strong>echo</strong>
+<dd>
+This command prints one of the include variables, defined below.
+If the variable is unset, it is printed as <code>(none)</code>.
+Any dates printed are subject to the currently configured <code>timefmt</code>.
+Attributes:
+<dl>
+<dt>var
+<dd>The value is the name of the variable to print.
+</dl>
+
+<dt><strong>exec</strong>
+<dd>
+The exec command executes a given shell command or CGI script.
+The IncludesNOEXEC <A HREF="core.html#options">Option</A> disables this command
+completely. The valid attributes are:
+<dl>
+<dt>cgi
+<dd>
+The value specifies a (%-encoded) URL relative path to the CGI script.
+If the path does not begin with a (/), then it is taken to be relative to
+the current document. The document referenced by this path is invoked
+as a CGI script, even if the server would not normally recognize it as
+such. However, the directory containing the script must be enabled for
+CGI scripts (with <A HREF="mod_alias.html#scriptalias">ScriptAlias</A>
+or the ExecCGI <A HREF="core.html#options">Option</A>).<p>
+The CGI script is given the PATH_INFO and query string (QUERY_STRING) of the
+original request from the client; these cannot be specified in the URL path.
+The include variables will be available to the script in addition to the
+standard <A HREF="mod_cgi.html">CGI</A> environment.<p>
+If the script returns a Location: header instead of output, then this
+will be translated into an HTML anchor.<p>
+The <code>include virtual</code> element should be used in preference to
+<code>exec cgi</code>.
+<dt>cmd
+<dd>The server will execute the given string using <code>/bin/sh</code>.
+The include variables are available to the command.
+</dl>
+
+<dt><strong>fsize</strong>
+<dd>
+This command prints the size of the specified file, subject to the
+<code>sizefmt</code> format specification. Attributes:
+<dl>
+<dt>file
+<dd>The value is a path relative to the directory containing the current
+document being parsed.
+<dt>virtual
+<dd>The value is a (%-encoded) URL-path relative to the current document being
+parsed. If it does not begin with a slash (/) then it is taken to be relative
+to the current document.
+</dl>
+
+<dt><strong>flastmod</strong>
+<dd>
+This command prints the last modification date of the specified file,
+subject to the <code>timefmt</code> format specification. The attributes are
+the same as for the <code>fsize</code> command.
+
+<dt><strong>include</strong>
+<dd>
+This command inserts the text of another document or file into the parsed
+file. Any included file is subject to the usual access control. If the
+directory containing the parsed file has the
+<A HREF="core.html#options">Option</A>
+IncludesNOEXEC set, and the including the document would cause a program
+to be executed, then it will not be included; this prevents the execution of
+CGI scripts. Otherwise CGI scripts are invoked as normal using the complete
+URL given in the command, including any query string.
+<!--%plaintext &lt;?INDEX CGI scripts, {\tt include} element and&gt; -->
+<p>
+
+An attribute defines the location of the document; the inclusion is done for
+each attribute given to the include command. The valid attributes are:
+<dl>
+<dt>file
+<dd>The value is a path relative to the directory containing the current
+document being parsed. It cannot contain <code>../</code>, nor can it be an
+absolute path. The <code>virtual</code> attribute should always be used
+in preference to this one.
+<dt>virtual
+<dd>The value is a (%-encoded) URL relative to the current document being
+parsed. The URL cannot contain a scheme or hostname, only a path and
+an optional query string. If it does not begin with a slash (/) then it
+is taken to be relative to the current document.
+</dl>
+A URL is constructed from the attribute, and the output the server
+would return if the URL were accessed by the client is included in the parsed
+output. Thus included files can be nested.
+
+<dt><strong>printenv</strong>
+<dd>This prints out a listing of all existing variables and their values.
+ No attributes.
+<dd>For example: <code>&lt;!--#printenv --&gt;</code>
+<dd>Apache 1.2 and above.
+
+<dt><strong>set</strong>
+<dd>This sets the value of a variable. Attributes:
+<dl>
+<dt>var
+<dd>The name of the variable to set.
+<dt>value
+<dd>The value to give a variable.
+</dl>
+For example:
+ <CODE>&lt;!--#set var="category" value="help" --&gt;</CODE>
+<dd>Apache 1.2 and above.
+
+</dl>
+
+<h2>Include Variables</h2>
+
+In addition to the variables in the standard CGI environment, these are
+available for the <code>echo</code> command, for <code>if</code> and
+<code>elif</code>, and to any program invoked by the document.
+
+<dl>
+<dt>DATE_GMT
+<dd>The current date in Greenwich Mean Time.
+<dt>DATE_LOCAL
+<dd>The current date in the local time zone.
+<dt>DOCUMENT_NAME
+<dd>The filename (excluding directories) of the document requested by the
+user.
+<dt>DOCUMENT_URI
+<dd>The (%-decoded) URL path of the document requested by the user. Note that
+in the case of nested include files, this is <em>not</em> then URL for the
+current document.
+<dt>LAST_MODIFIED
+<dd>The last modification date of the document requested by the user.
+</dl>
+<p>
+
+<H2>Variable Substitution</H2>
+<P> Variable substitution is done within quoted strings in most cases
+ where they may reasonably occur as an argument to an SSI directive.
+ This includes the
+ <SAMP>config</SAMP>,
+ <SAMP>exec</SAMP>,
+ <SAMP>flastmod</SAMP>,
+ <SAMP>fsize</SAMP>,
+ <SAMP>include</SAMP>, and
+ <SAMP>set</SAMP>
+ directives, as well as the arguments to conditional operators.
+ You can insert a literal dollar sign into the string using backslash
+ quoting:
+
+<PRE>
+ &lt;!--#if expr="$a = \$test" --&gt;
+</PRE>
+
+<P> If a variable reference needs to be substituted in the middle of a
+ character sequence that might otherwise be considered a valid
+ identifier in its own right, it can be disambiguated by enclosing
+ the reference in braces, <EM>&agrave; la</EM> shell substitution:
+
+<PRE>
+ &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
+</PRE>
+
+<P> This will result in the <SAMP>Zed</SAMP> variable being set to
+ &quot;<SAMP>X_Y</SAMP>&quot; if <SAMP>REMOTE_HOST</SAMP> is
+ &quot;<SAMP>X</SAMP>&quot; and <SAMP>REQUEST_METHOD</SAMP> is
+ &quot;<SAMP>Y</SAMP>&quot;.
+
+<P> EXAMPLE: the below example will print "in foo" if the DOCUMENT_URI is
+/foo/file.html, "in bar" if it is /bar/file.html and "in neither"
+otherwise:
+<PRE>
+ &lt;!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --&gt;
+ in foo
+ &lt;!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" --&gt;
+ in bar
+ &lt;!--#else --&gt;
+ in neither
+ &lt;!--#endif --&gt;
+</PRE>
+
+<H2>Flow Control Elements</H2>
+
+These are available in Apache 1.2 and above. The basic flow control
+elements are:
+
+<PRE>
+ &lt;!--#if expr="<I>test_condition</I>" --&gt;
+ &lt;!--#elif expr="<I>test_condition</I>" --&gt;
+ &lt;!--#else --&gt;
+ &lt;!--#endif --&gt;
+</PRE>
+
+<P> The <B><CODE>if</CODE></B> element works like an
+ if statement in a programming language. The test condition
+ is evaluated and if the result is true, then the text until
+ the next <B><CODE>elif</CODE></B>, <B><CODE>else</CODE></B>.
+ or <B><CODE>endif</CODE></B> element is included in the
+ output stream.
+
+<P> The <B><CODE>elif</CODE></B> or <B><CODE>else</CODE></B>
+ statements are be used the put text into the output stream
+ if the original test_condition was false. These elements
+ are optional.
+
+<P> The <B><CODE>endif</CODE></B> element ends the
+ <B><CODE>if</CODE></B> element and is required.
+
+<P> <I>test_condition</I> is one of the following:
+
+<DL>
+
+<DT><I>string</I><DD>true if <I>string</I> is not empty
+
+<DT><I>string1</I> = <I>string2</I><BR>
+ <I>string1</I> != <I>string2</I>
+
+<DD>Compare string1 with string 2. If string2 has the form <I>/string/</I>
+ than it is compared as a regular expression.
+ Regular expressions have the same syntax as those found in the
+ Unix egrep command.
+
+<DT>( <I>test_condition</I> )
+ <DD>true if <I>test_condition</I> is true
+<DT>! <I>test_condition</I>
+ <DD>true if <I>test_condition</I> is false
+<DT><I>test_condition1</I> && <I>test_condition2</I>
+ <DD>true if both <I>test_condition1</I> and
+ <I>test_condition2</I> are true
+<DT><I>test_condition1</I> || <I>test_condition2</I>
+ <DD>true if either <I>test_condition1</I> or
+ <I>test_condition2</I> is true
+</DL>
+
+<P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and
+ "<I>||</I>".
+ "<I>!</I>" binds most tightly. Thus, the following are equivalent:
+
+<PRE>
+ &lt;!--#if expr="$a = test1 && $b = test2" --&gt;
+ &lt;!--#if expr="($a = test1) && ($b = test2)" --&gt;
+</PRE>
+
+<P> Anything that's not recognized as a variable or an operator is
+ treated as a string. Strings can also be quoted: <I>'string'</I>.
+ Unquoted strings can't contain whitespace (blanks and tabs)
+ because it is used to separate tokens such as variables. If
+ multiple strings are found in a row, they are concatenated using
+ blanks. So,
+
+<PRE>
+ <I>string1 string2</I> results in <I>string1 string2</I>
+ <I>'string1 string2'</I> results in <I>string1 string2</I>
+</PRE>
+
+<hr>
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#xbithack">XBitHack</A>
+</ul>
+<hr>
+
+
+<h2><A name="xbithack">XBitHack</A></h2>
+<!--%plaintext &lt;?INDEX {\tt XBitHack} directive&gt; -->
+<strong>Syntax:</strong> XBitHack <em>status</em><br>
+<strong>Default:</strong> <code>XBitHack off</code><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> Options<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_include<p>
+
+The XBitHack directives controls the parsing of ordinary html documents.
+This directive only affects files associated with the MIME type
+<CODE>text/html</CODE>.
+<em>Status</em> can have the following values:
+<dl>
+<dt>off
+<dd>No special treatment of executable files.
+<dt>on
+<dd>Any file that has the user-execute bit set will be treated as a
+server-parsed html document.
+<dt>full
+<dd>As for <code>on</code> but also test the group-execute bit. If it
+is set, then set the Last-modified date of the returned file to be the
+last modified time of the file. If it is not set, then no last-modified date
+is sent. Setting this bit allows clients and proxies to cache the result of
+the request.
+<p><b>Note:</b> you would not want to use this, for example, when you
+<code>#include</code> a CGI that produces different output on each hit
+(or potentially depends on the hit).
+</dl>
+<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html
new file mode 100644
index 00000000000..8bb49e28983
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<title>Apache module mod_info</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<h1 ALIGN="CENTER">Module mod_info</h1>
+
+This module is contained in the <code>mod_info.c</code> file. It
+provides a comprehensive overview of the server configuration
+including all installed modules and directives in the configuration
+files. This module is not compiled into the
+server by default. It is only available in Apache 1.1 and later. To
+enable it, add the following line to the server build Configuration
+file, and rebuild the server:
+
+<PRE>
+Module info_module mod_info.o
+</PRE>
+
+<HR>
+<P>
+To configure it, add the following to your <code>access.conf</code> file.
+
+<PRE>
+&lt;Location /server-info&gt;
+SetHandler server-info
+&lt;/Location&gt;
+</PRE>
+
+You may wish to add a
+<A
+ HREF="core.html#limit"
+>&lt;Limit&gt;</A>
+clause inside the
+<A
+ HREF="core.html#location"
+>location</A>
+directive to limit access to your server configuration information.<p>
+Once configured, the server information is obtained by accessing
+<tt>http://your.host.dom/server-info</tt><p>
+<BLOCKQUOTE>
+ <STRONG>
+ Note that the configuration files are read by the module at run-time,
+ and therefore the display may <EM>not</EM> reflect the running
+ server's active configuration if the files have been changed since the
+ server was last reloaded. Also, the configuration files must be
+ readable by the user as which the server is running (see the
+ <A
+ HREF="core.html#user"
+ ><SAMP>User</SAMP></A>
+ directive), or else the directive settings will not be listed.
+ <P>
+ It should also be noted that if <SAMP>mod_info</SAMP> is compiled into
+ the server, its handler capability is available in <EM>all</EM>
+ configuration files, including <EM>per</EM>-directory files
+ (<EM>e.g.</EM>, <SAMP>.htaccess</SAMP>). This may have
+ security-related ramifications for your site.
+ </P>
+ </STRONG>
+</BLOCKQUOTE>
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_agent.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_agent.html
new file mode 100644
index 00000000000..a0913517dc0
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_agent.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Module mod_log_agent</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_log_agent</h1>
+
+This module is contained in the <code>mod_log_agent.c</code> file, and is not
+compiled in by default. It provides for logging of the client user agents.
+
+
+<ul>
+<li><A HREF="#agentlog">AgentLog</A>
+</ul>
+<hr>
+
+
+<h2><A name="agentlog">AgentLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt AgentLog} directive&gt; -->
+<strong>Syntax:</strong> AgentLog <em>file-pipe</em><br>
+<strong>Default:</strong> <code>AgentLog logs/agent_log</code><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_log_agent<p>
+
+The AgentLog directive sets the name of the file to which the server will
+log the UserAgent header of incoming requests. <em>File-pipe</em> is one
+of
+<dl><dt>A filename
+<dd>A filename relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
+<dt> `|' followed by a command
+<dd>A program to receive the agent log information on its standard input.
+Note the a new program will not be started for a VirtualHost if it inherits
+the AgentLog from the main server.
+</dl>
+<strong>Security:</strong> if a program is used, then it will be
+run under the user who started httpd. This will be root if the server
+was started by root; be sure that the program is secure.<p>
+
+<strong>Security:</strong> See the <A
+HREF="../misc/security_tips.html">security tips</A> document for
+details on why your security could be compromised if the directory
+where logfiles are stored is writable by anyone other than the user
+that starts the server.<P>
+
+This directive is provided for compatibility with NCSA 1.4.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html
new file mode 100644
index 00000000000..d4d4e5deec4
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_log_common</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_log_common</h1>
+
+This module is contained in the <code>mod_log_common.c</code> file,
+and is compiled in by default. It provides for logging of the requests
+made to the server using the Common Logfile Format. This module has
+been replaced by mod_log_config in Apache 1.2
+
+<h2>Log file format</h2>
+The log file contains a separate line for each request. A line is composed
+of several tokens separated by spaces:
+<blockquote>
+host ident authuser date request status bytes
+</blockquote>
+If a token does not have a value then it is represented by a hyphen (-).
+The meanings and values of these tokens are as follows:
+<dl>
+<dt>host
+<dd>The fully-qualified domain name of the client, or its IP number if the
+name is not available.
+<dt>ident
+<dd>If <A HREF="core.html#identitycheck">IdentityCheck</A> is enabled and the
+client machine runs identd, then this is the identity information reported
+by the client.
+<dt>authuser
+<dd>If the request was for an password protected document, then this is
+the userid used in the request.
+<dt>date
+<dd>The date and time of the request, in the following format:
+<dl><dd><blockquote><code> date = [day/month/year:hour:minute:second zone] <br>
+day = 2*digit<br>
+month = 3*letter<br>
+year = 4*digit<br>
+hour = 2*digit<br>
+minute = 2*digit<br>
+second = 2*digit<br>
+zone = (`+' | `-') 4*digit</code></blockquote></dl>
+<dt>request
+<dd>The request line from the client, enclosed in double quotes
+(<code>&quot;</code>).
+<dt>status
+<dd>The three digit status code returned to the client.
+<dt>bytes
+<dd>The number of bytes in the object returned to the client, not including
+any headers.
+</dl>
+
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#transferlog">TransferLog</A>
+</ul>
+<hr>
+
+
+<h2><A name="transferlog">TransferLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; -->
+<strong>Syntax:</strong> TransferLog <em>file-pipe</em><br>
+<strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_log_common<p>
+
+The TransferLog directive sets the name of the file to which the server will
+log the incoming requests. <em>File-pipe</em> is one
+of
+<dl><dt>A filename
+<dd>A filename relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
+<dt> `|' followed by a command
+<dd>A program to receive the agent log information on its standard input.
+Note the a new program will not be started for a VirtualHost if it inherits
+the TransferLog from the main server.
+</dl>
+<strong>Security:</strong> if a program is used, then it will be
+run under the user who started httpd. This will be root if the server
+was started by root; be sure that the program is secure.<p>
+
+<strong>Security:</strong> See the <A
+HREF="../misc/security_tips.html">security tips</A> document for
+details on why your security could be compromised if the directory
+where logfiles are stored is writable by anyone other than the user
+that starts the server.<P>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html
new file mode 100644
index 00000000000..a670e824458
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_log_config</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_log_config</h1>
+
+This module is contained in the <code>mod_log_config.c</code> file,
+and is compiled in by default in Apache 1.2. mod_log_config replaces
+mod_log_common in Apache 1.2. Prior to version 1.2, mod_log_config was
+an optional module. It provides for logging of the requests made to
+the server, using the Common Log Format or a user-specified format.
+
+<h2>Summary</h2>
+
+Three directives are provided by this module: <code>TransferLog</code>
+to create a log file, <code>LogFormat</code> to set a custom format,
+and <code>CustomLog</code> to define a log file and format in one go.
+The <code>TransferLog</code> and <code>CustomLog</code> directives can
+be used multiple times in each server to cause each request to be
+logged to multiple files.
+<P>
+
+<h3>Compatibility notes</h3>
+
+<ul>
+<li>This module is based on mod_log_config distributed with
+previous Apache releases, now updated to handle multiple logs.
+There is now no need to re-configure Apache to use configuration log
+formats.
+
+<li>The module also implements the <code>CookieLog</code> directive,
+used to log user-tracking information created by <a
+href="mod_usertrack.html">mod_usertrack</a>. The use of
+<code>CookieLog</code> is deprecated, and a <code>CustomLog</code>
+should be defined to log user-tracking information instead.
+
+</ul>
+
+<h2>Log File Formats</h2>
+
+Unless told otherwise with <tt>LogFormat</tt> the log files created by
+<tt>TransferLog</tt> will be in standard "Common Log Format"
+(CLF). The contents of each line in a CLF file are explained
+below. Alternatively, the log file can be customized (and if multiple
+log files are used, each can have a different format). Custom formats
+are set with <code>LogFormat</code> and <code>CustomLog</code>.
+
+<h3>Common Log Format</h3>
+
+The Common Log Format (CLF) file contains a separate line for each
+request. A line is composed of several tokens separated by spaces:
+
+<blockquote>
+host ident authuser date request status bytes
+</blockquote>
+If a token does not have a value then it is represented by a hyphen (-).
+The meanings and values of these tokens are as follows:
+<dl>
+<dt>host
+<dd>The fully-qualified domain name of the client, or its IP number if the
+name is not available.
+<dt>ident
+<dd>If <A HREF="core.html#identitycheck">IdentityCheck</A> is enabled and the
+client machine runs identd, then this is the identity information reported
+by the client.
+<dt>authuser
+<dd>If the request was for an password protected document, then this is
+the userid used in the request.
+<dt>date
+<dd>The date and time of the request, in the following format:
+<dl><dd><blockquote><code> date = [day/month/year:hour:minute:second zone] <br>
+day = 2*digit<br>
+month = 3*letter<br>
+year = 4*digit<br>
+hour = 2*digit<br>
+minute = 2*digit<br>
+second = 2*digit<br>
+zone = (`+' | `-') 4*digit</code></blockquote></dl>
+<dt>request
+<dd>The request line from the client, enclosed in double quotes
+(<code>&quot;</code>).
+<dt>status
+<dd>The three digit status code returned to the client.
+<dt>bytes
+<dd>The number of bytes in the object returned to the client, not including
+any headers.
+</dl>
+
+<h3><A NAME="formats">Custom Log Formats</A></h3>
+
+The format argument to the <code>LogFormat</code> and
+<code>CustomLog</code> is a string. This string is logged to the log
+file for each request. It can contain literal characters copied into
+the log files, and `%' directives which are replaced in the log file
+by the values as follows:
+
+<PRE>
+%...b: Bytes sent, excluding HTTP headers.
+%...f: Filename
+%...{FOOBAR}e: The contents of the environment variable FOOBAR
+%...h: Remote host
+%...{Foobar}i: The contents of Foobar: header line(s) in the request
+ sent to the server.
+%...l: Remote logname (from identd, if supplied)
+%...{Foobar}n: The contents of note "Foobar" from another module.
+%...{Foobar}o: The contents of Foobar: header line(s) in the reply.
+%...p: The port the request was served to
+%...P: The process ID of the child that serviced the request.
+%...r: First line of request
+%...s: Status. For requests that got internally redirected, this
+ is status of the *original* request --- %...&gt;s for the last.
+%...t: Time, in common log format time format
+%...{format}t: The time, in the form given by format, which should
+ be in strftime(3) format.
+%...T: The time taken to serve the request, in seconds.
+%...u: Remote user (from auth; may be bogus if return status (%s) is 401)
+%...U: The URL path requested.
+%...v: The name of the server (i.e. which virtual host?)
+</PRE>
+
+The `...' can be nothing at all (e.g. <code>"%h %u %r %s %b"</code>), or it can
+indicate conditions for inclusion of the item (which will cause it
+to be replaced with `-' if the condition is not met). Note that
+there is no escaping performed on the strings from %r, %...i and
+%...o; some with long memories may remember that I thought this was
+a bad idea, once upon a time, and I'm still not comfortable with
+it, but it is difficult to see how to `do the right thing' with all
+of `%..i', unless we URL-escape everything and break with CLF.
+
+<P>
+
+The forms of condition are a list of HTTP status codes, which may
+or may not be preceded by `!'. Thus, `%400,501{User-agent}i' logs
+User-agent: on 400 errors and 501 errors (Bad Request, Not
+Implemented) only; `%!200,304,302{Referer}i' logs Referer: on all
+requests which did <b>not</b> return some sort of normal status.
+
+<P>
+
+Note that the common log format is defined by the string <code>"%h %l
+%u %t \"%r\" %s %b"</code>, which can be used as the basis for
+extending for format if desired (e.g. to add extra fields at the end).
+NCSA's extended/combined log format would be <code>"%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""</code>.
+
+<h2>Using Multiple Log Files</h2>
+
+The <code>TransferLog</code> and <code>CustomLog</code> directives can
+be given more than once to log requests to multiple log files. Each
+request will be logged to all the log files defined by either of these
+directives.
+
+<h3>Use with Virtual Hosts</h3>
+
+If a &lt;VirtualHost&gt; section does not contain any
+<tt>TransferLog</tt> or <tt>CustomLog</tt> directives, the
+logs defined for the main server will be used. If it does
+contain one or more of these directives, requests serviced by
+this virtual host will only be logged in the log files defined
+within its definition, not in any of the main server's log files.
+See the examples below.
+<p>
+
+<h2>Security Considerations</h2>
+
+See the <A HREF="../misc/security_tips.html">security tips</A> document
+for details on why your security could be compromised if the directory
+where logfiles are stored is writable by anyone other than the user
+that starts the server.
+<p>
+<h2>Directives</h2>
+
+<ul>
+<li><A HREF="#cookielog">CookieLog</A>
+<LI><A HREF="#customlog">CustomLog</A>
+<li><A HREF="#logformat">LogFormat</A>
+<li><A HREF="#transferlog">TransferLog</A>
+</ul>
+<hr>
+
+
+<h2><A name="cookielog">CookieLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt CookieLog} directive&gt; -->
+<strong>Syntax:</strong> CookieLog <em>filename</em><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Module:</strong> mod_cookies<br>
+<strong>Compatibility:</strong> Only available in Apache 1.2 and above<p>
+
+The CookieLog directive sets the filename for logging of cookies.
+The filename is relative to the <A
+HREF="core.html#serverroot">ServerRoot</A>. This directive is included
+only for compatibility with <a
+href="mod_cookies.html">mod_cookies</a>, and is deprecated.
+<p>
+
+<H2><A NAME="customlog">CustomLog</A></H2>
+<STRONG>Syntax:</STRONG> CustomLog <em>file-pipe</em> <em>format</em><BR>
+<STRONG>Context:</STRONG> server config, virtual host<BR>
+<STRONG>Status:</STRONG> Base<BR>
+<STRONG>Module:</STRONG> mod_log_config<P>
+
+The first argument is the filename to log to. This is used
+exactly like the argument to <tt>TransferLog</tt>, that is,
+it is either a full path, or relative to the current
+server root. <p>
+
+The format argument specifies a format for each line of the log file.
+The options available for the format are exactly the same as for
+the argument of the <tt>LogFormat</tt> directive. If the format
+includes any spaces (which it will do in almost all cases) it
+should be enclosed in double quotes.
+
+<h2><A name="logformat">LogFormat</A></h2>
+<!--%plaintext &lt;?INDEX {\tt LogFormat} directive&gt; -->
+<strong>Syntax:</strong> LogFormat <em>string</em><br>
+<strong>Default:</strong> <code>LogFormat &quot;%h %l %u %t \&quot;%r\&quot;
+%s %b&quot;</code><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_log_config<p>
+
+This sets the format of the logfile. See <A HREF="#formats">
+Custom Log Formats</A> for details on the format arguments.<p><hr>
+
+
+<h2><A name="transferlog">TransferLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; -->
+<strong>Syntax:</strong> TransferLog <em>file-pipe</em><br>
+<strong>Default:</strong> none<br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_log_config<p>
+
+The TransferLog directive adds a log file in Common Log Format.
+<em>File-pipe</em> is one
+of
+<dl><dt>A filename
+<dd>A filename relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
+<dt> `|' followed by a command
+<dd>A program to receive the agent log information on its standard input.
+Note the a new program will not be started for a VirtualHost if it inherits
+the TransferLog from the main server.
+</dl>
+<strong>Security:</strong> if a program is used, then it will be
+run under the user who started httpd. This will be root if the server
+was started by root; be sure that the program is secure.<p>
+
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_referer.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_referer.html
new file mode 100644
index 00000000000..ab86f2967a8
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_referer.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_log_referer</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_log_referer</h1>
+
+This module is contained in the <code>mod_log_referer.c</code> file, and is not
+compiled in by default. It provides for logging of the documents which
+reference documents on the server.
+
+<h2>Log file format</h2>
+The log file contains a separate line for each refer. Each line has the
+format
+<blockquote><em>uri</em> <code>-&gt;</code> <em>document</em></blockquote>
+where <em>uri</em> is the (%-escaped) URI for the document that references
+the one requested by the client, and <em>document</em> is the (%-decoded)
+local URL to the document being referred to.
+
+
+<h2>Directives</h2>
+<ul>
+<li><A HREF="#refererignore">RefererIgnore</A>
+<li><A HREF="#refererlog">RefererLog</A>
+</ul>
+<hr>
+
+
+<h2><A name="refererignore">RefererIgnore</A></h2>
+<!--%plaintext &lt;?INDEX {\tt RefererIgnore} directive&gt; -->
+<strong>Syntax:</strong> RefererIgnore <em>string string ...</em><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_log_referer<p>
+
+The RefererIgnore directive adds to the list of strings to ignore in
+Referer headers. If any of the strings in the list is contained in
+the Referer header, then no referrer information will be logged for the
+request. Example:
+<blockquote><code>RefererIgnore www.ncsa.uiuc.edu</code></blockquote>
+This avoids logging references from www.ncsa.uiuc.edu.
+<p><hr>
+
+
+<h2><A name="refererlog">RefererLog</A></h2>
+<!--%plaintext &lt;?INDEX {\tt RefererLog} directive&gt; -->
+<strong>Syntax:</strong> RefererLog <em>file-pipe</em><br>
+<strong>Default:</strong> <code>RefererLog logs/referer_log</code><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Extension<br>
+<strong>Module:</strong> mod_log_referer<p>
+
+The RefererLog directive sets the name of the file to which the server will
+log the Referer header of incoming requests. <em>File-pipe</em> is one
+of
+<dl><dt>A filename
+<dd>A filename relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
+<dt> `|' followed by a command
+<dd>A program to receive the referrer log information on its standard input.
+Note the a new program will not be started for a VirtualHost if it inherits
+the RefererLog from the main server.
+</dl>
+<strong>Security:</strong> if a program is used, then it will be
+run under the user who started httpd. This will be root if the server
+was started by root; be sure that the program is secure.<p>
+
+<strong>Security:</strong> See the <A
+HREF="../misc/security_tips.html">security tips</A> document for
+details on why your security could be compromised if the directory
+where logfiles are stored is writable by anyone other than the user
+that starts the server.<P>
+
+This directive is provided for compatibility with NCSA 1.4.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html
new file mode 100644
index 00000000000..aaf392a3e4a
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_mime</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_mime</h1>
+
+This module is contained in the <code>mod_mime.c</code> file, and is
+compiled in by default. It provides for determining the types of files
+from the filename.
+
+<h2>Summary</h2>
+
+This module is used to determine various bits of "meta information"
+about documents. This information relates to the content of the
+document and is returned to the browser or used in content-negotiation
+within the server. In addition, a "handler" can be set for a document,
+which determines how the document will be processed within the server.
+
+<P>
+
+The directives <A HREF="#addencoding">AddEncoding</A>, <A
+HREF="#addhandler">AddHandler</A>, <A
+HREF="#addlanguage">AddLanguage</A> and <A HREF="#addtype">AddType</A>
+are all used to map file extensions onto the meta-information for that
+file. Respectively they set the content-encoding, handler,
+content-language and mime-type (content-type) of documents. The
+directive <A HREF="#typesconfig">TypesConfig</A> is used to specify a
+file which also maps extensions onto mime types. The directives <A
+HREF="#forcetype">ForceType</A> and <A
+HREF="#sethandler">SetHandler</A> are used to associated all the files
+in a given location (e.g. a particular directory) onto a particular
+mime type or handler.
+
+<P>
+
+Files can have more than one extension, and the order of the
+extensions is normally irrelevant. For example, if the file
+<CODE>welcome.html.fr</CODE> maps onto content type text/html and
+language French then the file <CODE>welcome.fr.html</CODE> will map
+onto exactly the same information. The only exception to this is if an
+extension is given which Apache does not know how to handle. In this
+case it will "forget" about any information it obtained from
+extensions to the left of the unknown extension. So, for example, if
+the extensions fr and html are mapped to the appropriate language and
+type but extension xxx is not assigned to anything, then the file
+<CODE>welcome.fr.xxx.html</CODE> will be associated with content-type
+text/html but <i>no</i> language.
+
+<P>
+
+<h2> Directives</h2>
+<ul>
+<li><A HREF="#addencoding">AddEncoding</A>
+<li><A HREF="#addhandler">AddHandler</A>
+<li><A HREF="#addlanguage">AddLanguage</A>
+<li><A HREF="#addtype">AddType</A>
+<li><A HREF="#forcetype">ForceType</A>
+<li><A HREF="#sethandler">SetHandler</A>
+<li><A HREF="#typesconfig">TypesConfig</A>
+</ul>
+<hr>
+
+
+<h2><A name="addencoding">AddEncoding</A></h2>
+<!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
+<strong>Syntax:</strong> AddEncoding <em>mime-enc extension extension...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<p>
+
+The AddEncoding directive adds to the list of filename extensions which
+filenames may end in for the specified encoding type. <em>Mime-enc</em>
+is the mime encoding to use for documents ending in <em>extension</em>.
+Example:
+<blockquote><code>
+AddEncoding x-gzip gz<br>
+AddEncoding x-compress Z
+</code></blockquote>
+
+This will cause files ending in .gz to be marked as encoded using the x-gzip
+encoding, and .Z files to be marked as encoded with x-compress.<p><hr>
+
+<h2><a name="addhandler">AddHandler</a></h2>
+
+<strong>Syntax:</strong> AddHandler <em>handler-name extension extension...</em><br>
+<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<br>
+<strong>Compatibility:</strong> AddHandler is only available in Apache
+1.1 and later<p>
+
+<p>AddHandler maps the filename extensions <em>extension</em> to the
+<a href="../handler.html">handler</a>
+<em>handler-name</em>. For example, to activate CGI scripts
+with the file extension "<code>.cgi</code>", you might use:
+<pre>
+ AddHandler cgi-script cgi
+</pre>
+
+<p>Once that has been put into your srm.conf or httpd.conf file, any
+file ending with "<code>.cgi</code>" will be treated as a CGI
+program.</p>
+<HR>
+
+<h2><A name="addlanguage">AddLanguage</A></h2>
+<!--%plaintext &lt;?INDEX {\tt AddLanguage} directive&gt; -->
+<strong>Syntax:</strong> AddLanguage <em>mime-lang extension extension...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<p>
+
+The AddLanguage directive adds to the list of filename extensions which
+filenames may end in for the specified content language. <em>Mime-lang</em>
+is the mime language of files with names ending <em>extension</em>,
+after any content encoding extensions have been removed. Example:
+<blockquote><code>
+AddEncoding x-compress Z<br>
+AddLanguage en .en<br>
+AddLanguage fr .fr<br>
+</code></blockquote>
+
+Then the document <code>xxxx.en.Z</code> will be treated as being a compressed
+English document. Although the content language is reported to the client,
+the browser is unlikely to use this information. The AddLanguage directive
+is more useful for content negotiation, where the server returns one
+from several documents based on the client's language preference.<p><hr>
+
+<h2><A name="addtype">AddType</A></h2>
+<!--%plaintext &lt;?INDEX {\tt AddType} directive&gt; -->
+<strong>Syntax:</strong> AddType <em>mime-type extension extension...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<p>
+
+The AddType directive adds to the list of filename extensions which
+filenames may end in for the specified content type. <em>Mime-enc</em>
+is the mime type to use for documents ending in <em>extension</em>.
+after content-encoding and language extensions have been removed. Example:
+<blockquote><code>
+AddType image/gif GIF
+</code></blockquote>
+It is recommended that new mime types be added using the AddType directive
+rather than changing the <A HREF="#typesconfig">TypesConfig</A> file.<p>
+Note that, unlike the NCSA httpd, this directive cannot be used to set the
+type of particular files.<p><hr>
+
+<h2><a name="forcetype">ForceType</a></h2>
+
+<strong>Syntax:</strong> ForceType <em>media type</em><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<br>
+<strong>Compatibility:</strong> ForceType is only available in Apache
+1.1 and later.<p>
+
+<p>When placed into an <code>.htaccess</code> file or a
+<code>&lt;Directory&gt;</code> or <code>&lt;Location&gt;</code> section,
+this directive forces all matching files to be served
+as the content type given by <em>media type</em>. For example, if you
+had a directory full of GIF files, but did not want to label them all with
+".gif", you might want to use:
+<pre>
+ ForceType image/gif
+</pre>
+<p>Note that this will override any filename extensions that might
+media type.</p>
+
+<h2><a name="sethandler">SetHandler</a></h2>
+
+<strong>Syntax:</strong> SetHandler <em>handler-name</em><br>
+<strong>Context:</strong> directory, .htaccess<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<br>
+<strong>Compatibility:</strong> SetHandler is only available in Apache
+1.1 and later.<p>
+
+<p>When placed into an <code>.htaccess</code> file or a
+<code>&lt;Directory&gt;</code> or <code>&lt;Location&gt;</code> section,
+this directive forces all matching files to be parsed through the
+<a href="../handler.html">handler</a>
+given by <em>handler-name</em>. For example, if you had a
+directory you wanted to be parsed entirely as imagemap rule files,
+regardless of extension, you might put the following into an
+<code>.htaccess</code> file in that directory:
+<pre>
+ SetHandler imap-file
+</pre>
+
+<p>Another example: if you wanted to have the server display a status
+report whenever a URL of <code>http://servername/status</code> was
+called, you might put the following into access.conf:
+<pre>
+ &lt;Location /status&gt;
+ SetHandler server-status
+ &lt;/Location&gt;
+</pre>
+<HR>
+
+<h2><A name="typesconfig">TypesConfig</A></h2>
+<!--%plaintext &lt;?INDEX {\tt TypesConfig} directive&gt; -->
+<strong>Syntax:</strong> TypesConfig <em>filename</em><br>
+<strong>Default:</strong> <code>TypesConfig conf/mime.types</code><br>
+<Strong>Context:</strong> server config<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_mime<p>
+
+The TypesConfig directive sets the location of the mime types configuration
+file. <em>Filename</em> is relative to the
+<A HREF="core.html#serverroot">ServerRoot</A>. This file sets the default list of
+mappings from filename extensions to content types; changing this file is not
+recommended. Use the <A HREF="#addtype">AddType</A> directive instead. The
+file contains lines in the format of the arguments to an AddType command:
+<blockquote><em>mime-type extension extension ...</em></blockquote>
+The extensions are lower-cased. Blank lines, and lines beginning with a hash
+character (`#') are ignored.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html b/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html
new file mode 100644
index 00000000000..94cef4e5ac3
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_negotiation</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_negotiation</h1>
+
+This module is contained in the <code>mod_negotiation.c</code> file,
+and is compiled in by default. It provides for <A
+HREF="../content-negotiation.html">content negotiation</A>.
+
+<h2>Summary</h2>
+Content negotiation, or more accurately content selection, is the
+selection of the document that best matches the clients
+capabilities, from one of several available documents.
+There are two implementations of this.
+<ul>
+<li> A type map (a file with the handler <code>type-map</code>)
+which explicitly lists the files containing the variants.
+<li> A MultiViews search (enabled by the MultiViews
+<A HREF="core.html#options">Option</A>, where the server does an implicit
+filename pattern match, and choose from amongst the results.
+</ul>
+
+<h3>Type maps</h3>
+A type map has the same format as RFC822 mail headers. It contains document
+descriptions separated by blank lines, with lines beginning with a hash
+character ('#') treated as comments. A document description consists of
+several header records; records may be continued on multiple lines if the
+continuation lines start with spaces. The leading space will be deleted
+and the lines concatenated. A header record consists of a keyword
+name, which always ends in a colon, followed by a value. Whitespace is allowed
+between the header name and value, and between the tokens of value.
+
+The headers allowed are:
+
+<dl>
+<dt>Content-Encoding:
+<dd>The encoding of the file. Currently only two encodings are recognized
+by http; <code>x-compress</code> for compressed files, and <code>x-gzip</code>
+for gzipped files.
+<dt>Content-Language:
+<dd>The language of the variant, as an Internet standard language code, such
+as <code>en</code>.
+<dt>Content-Length:
+<dd>The length of the file, in bytes. If this header is not present, then
+the actual length of the file is used.
+<dt>Content-Type:
+<dd>The MIME media type of the document, with optional parameters.
+parameters are separated from the media type and from one another by
+semi-colons. Parameter syntax is name=value; allowed parameters are:
+<dl>
+<dt>level
+<dd>the value is an integer, which specifies the version of the media type.
+For <code>text/html</code> this defaults to 2, otherwise 0.
+<dt>qs
+<dd>the value is a floating-point number with value between 0. and 1.
+It indications the 'quality' of this variant.
+</dl>
+Example:
+<blockquote><code>Content-Type: image/jpeg; qs=0.8</code></blockquote>
+<dt>URI:
+<dd>The path to the file containing this variant, relative to the map file.
+</dl>
+
+<h3>MultiViews</h3>
+A MultiViews search is enabled by the MultiViews
+<A HREF="core.html#options">Option</A>.
+If the server receives a request for <code>/some/dir/foo</code> and
+<code>/some/dir/foo</code> does <em>not</em> exist, then the server reads the
+directory looking for all files named <code>foo.*</code>, and effectively
+fakes up a type map which names all those files, assigning them the same media
+types and content-encodings it would have if the client had asked for
+one of them by name. It then chooses the best match to the client's
+requirements, and returns that document.<p>
+
+
+
+<h2>Directives</h2>
+<ul>
+<li><A href="#cachenegotiateddocs">CacheNegotiatedDocs</a>
+<li><A HREF="#languagepriority">LanguagePriority</A>
+</ul>
+<hr>
+
+
+<h2><A name="cachenegotiateddocs">CacheNegotiatedDocs</A></h2>
+<strong>Syntax:</strong> CacheNegotiatedDocs<br>
+<Strong>Context:</strong> server config<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_negotiation<br>
+<strong>Compatibility:</strong> CacheNegotiatedDocs is only available
+in Apache 1.1 and later.<p>
+
+<p>If set, this directive allows content-negotiated documents to be
+cached by proxy servers. This could mean that clients behind those
+proxys could retrieve versions of the documents that are not the best
+match for their abilities, but it will make caching more
+efficient.
+<p>
+
+This directive only applies to requests which come from HTTP/1.0 browsers.
+HTTP/1.1 provides much better control over the caching of negotiated
+documents, and this directive has no effect in responses to
+HTTP/1.1 requests.
+
+
+
+<h2><A name="languagepriority">LanguagePriority</A></h2>
+<!--%plaintext &lt;?INDEX {\tt LanguagePriority} directive&gt; -->
+<strong>Syntax:</strong> LanguagePriority <em>mime-lang mime-lang...</em><br>
+<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
+<Strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_negotiation<p>
+
+The LanguagePriority sets the precedence of language variants for the case
+where the client does not express a preference, when handling a
+MultiViews request. The list of <em>mime-lang</em> are in order of decreasing
+preference. Example:
+
+<blockquote><code>LanguagePriority en fr de</code></blockquote>
+
+For a request for <code>foo.html</code>, where <code>foo.html.fr</code>
+and <code>foo.html.de</code> both existed, but the browser did not express
+a language preference, then <code>foo.html.fr</code> would be returned.<p>
+
+<P>
+
+Note that this directive only has an effect if a 'best' language
+cannot be determined by other any other means. Correctly implemented
+HTTP/1.1 requests will mean this directive has no effect.
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html b/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html
new file mode 100644
index 00000000000..baf4c4ff65f
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_proxy</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_proxy</H1>
+
+This module is contained in the <code>mod_proxy.c</code> file for Apache 1.1.x,
+or the <code>modules/proxy</code> subdirectory for Apache 1.2, and
+is not compiled in by default. It provides for an <b>HTTP 1.0</b> caching proxy
+server. It is only available in Apache 1.1 and later. Common configuration
+questions are addressed <a href="#configs">here</a>.
+
+<h3>Note:</h3>
+<p>This module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy
+stability is <i>greatly</i> improved.<p>
+
+<h2>Summary</h2>
+
+This module implements a proxy/cache for Apache. It implements
+proxying capability for
+<code>FTP</code>,
+<code>CONNECT</code> (for SSL),
+<code>HTTP/0.9</code>, and
+<code>HTTP/1.0</code>.
+The module can be configured to connect to other proxy modules for these
+and other protocols.
+
+<h2>Directives</h2>
+<ul>
+<li><a href="#proxyrequests">ProxyRequests</a>
+<li><a href="#proxyremote">ProxyRemote</a>
+<li><a href="#proxypass">ProxyPass</a>
+<li><a href="#proxyblock">ProxyBlock</a>
+<li><a href="#cacheroot">CacheRoot</a>
+<li><a href="#cachesize">CacheSize</a>
+<li><a href="#cachemaxexpire">CacheMaxExpire</a>
+<li><a href="#cachedefaultexpire">CacheDefaultExpire</a>
+<li><a href="#cachelastmodifiedfactor">CacheLastModifiedFactor</a>
+<li><a href="#cachegcinterval">CacheGcInterval</a>
+<li><a href="#cachedirlevels">CacheDirLevels</a>
+<li><a href="#cachedirlength">CacheDirLength</a>
+<li><a href="#nocache">NoCache</a>
+</ul>
+
+<hr>
+
+<A name="proxyrequests"><h2>ProxyRequests</h2></A>
+<strong>Syntax:</strong> ProxyRequests <em>on/off</em><br>
+<strong>Default:</strong> <code>ProxyRequests Off</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> ProxyRequest is only available in
+Apache 1.1 and later.<p>
+
+This allows or prevents Apache from functioning as a proxy
+server. Setting ProxyRequests to 'off' does not disable use of the <a
+href="#proxypass">ProxyPass</a> directive.
+
+<A name="proxyremote"><h2>ProxyRemote</h2></A>
+<strong>Syntax:</strong> ProxyRemote <em>&lt;match&gt; &lt;remote-server&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> ProxyRemote is only available in
+Apache 1.1 and later.<p>
+
+This defines remote proxies to this proxy. &lt;match&gt; is either the
+name of a URL-scheme that the remote server supports, or a partial URL
+for which the remote server should be used, or '*' to indicate the
+server should be contacted for all requests. &lt;remote-server&gt; is a
+partial URL for the remote server. Syntax:
+
+<pre>
+ &lt;remote-server&gt; = &lt;protocol&gt;://&lt;hostname&gt;[:port]
+</pre>
+
+&lt;protocol&gt; is the protocol that should be used to communicate
+with the remote server; only "http" is supported by this module.
+
+Example:
+<pre>
+ ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
+ ProxyRemote * http://cleversite.com
+ ProxyRemote ftp http://ftpproxy.mydomain.com:8080
+</pre>
+
+In the last example, the proxy will forward FTP requests, encapsulated
+as yet another HTTP proxy request, to another proxy which can handle
+them.
+
+<A name="proxypass"><h2>ProxyPass</h2></A>
+<strong>Syntax:</strong> ProxyPass <em>&lt;path&gt; &lt;url&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> ProxyPass is only available in
+Apache 1.1 and later.<p>
+
+This directive allows remote servers to be mapped into the space of the local
+server; the local server does not act as a proxy in the conventional sense,
+but appears to be a mirror of the remote server. &lt;path&gt; is the name of
+a local virtual path; &lt;url&gt; is a partial URL for the remote server.
+
+Suppose the local server has address http://wibble.org; then
+<pre>
+ ProxyPass /mirror/foo http://foo.com
+</pre>
+Will cause a local request for the http://wibble.org/mirror/foo/bar to be
+internally converted into a proxy request to http://foo.com/bar
+
+<A name="proxyblock"><h2>ProxyBlock</h2></A>
+<strong>Syntax:</strong> ProxyBlock <em>&lt;word/host/domain list&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> ProxyBlock is only available in
+Apache 1.2 and later.<p>
+
+The ProxyBlock directive specifies a list of words, hosts and/or domains,
+separated by spaces. HTTP, HTTPS, and FTP document requests to matched words,
+hosts or domains are <em>blocked</em> by the proxy server. The proxy module
+will also attempt to determine IP addresses of list items which may be
+hostnames during startup, and cache them for match test as well. Example:
+
+<pre>
+ ProxyBlock joes_garage.com some_host.co.uk rocky.wotsamattau.edu
+</pre>
+
+'rocky.wotsamattau.edu' would also be matched if referenced by IP address.<p>
+
+Note that 'wotsamattau' would also be sufficient to match 'wotsamattau.edu'.<p>
+
+Note also that
+
+<pre>
+ProxyBlock *
+</pre>
+
+blocks connections to all sites.
+
+<A name="cacheroot"><h2>CacheRoot</h2></A>
+<strong>Syntax:</strong> CacheRoot <em>&lt;directory&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheRoot is only available in
+Apache 1.1 and later.<p>
+
+Sets the name of the directory to contain cache files; this must be
+writable
+by the httpd server.
+
+<A name="cachesize"><h2>CacheSize</h2></A>
+<strong>Syntax:</strong> CacheSize <em>&lt;size&gt;</em><br>
+<strong>Default:</strong> <code>CacheSize 5</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheSize is only available in
+Apache 1.1 and later.<p>
+
+Sets the desired space usage of the cache, in Kb (1024 byte units). Although
+usage may grow above this setting, the garbage collection will delete files
+until the usage is at or below this setting.
+
+<A name="cachegcinterval"><h2>CacheGcInterval</h2></A>
+<strong>Syntax:</strong> CacheGcInterval <em>&lt;time&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheGcinterval is only available in
+Apache 1.1 and later.<p>
+
+Check the cache every &lt;time&gt; hours, and delete files if the space
+usage is greater than that set by CacheSize.
+
+<A name="cachemaxexpire"><h2>CacheMaxExpire</h2></A>
+<strong>Syntax:</strong> CacheMaxExpire <em>&lt;time&gt;</em><br>
+<strong>Default:</strong> <code>CacheMaxExpire 24</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheMaxExpire is only available in
+Apache 1.1 and later.<p>
+
+Cachable HTTP documents will be retained for at most &lt;time&gt; hours without
+checking the origin server. Thus documents can be at most &lt;time&gt;
+hours out of date. This restriction is enforced even if an expiry date
+was supplied with the document.
+
+<A name="cachelastmodifiedfactor"><h2>CacheLastModifiedFactor</h2></A>
+<strong>Syntax:</strong> CacheLastModifiedFactor <em>&lt;factor&gt;</em><br>
+<strong>Default:</strong> <code>CacheLastModifiedFactor 0.1</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheLastModifiedFactor is only available in
+Apache 1.1 and later.<p>
+
+If the origin HTTP server did not supply an expiry date for the
+document, then estimate one using the formula
+<pre>
+ expiry-period = time-since-last-modification * &lt;factor&gt;
+</pre>
+For example, if the document was last modified 10 hours ago, and
+&lt;factor&gt; is 0.1, then the expiry period will be set to 10*0.1 = 1 hour.
+
+<p>If the expiry-period would be longer than that set by CacheMaxExpire,
+then the latter takes precedence.
+
+<A name="cachedirlevels"><h2>CacheDirLevels</h2></A>
+<strong>Syntax:</strong> CacheDirLevels <em>&lt;levels&gt;</em><br>
+<strong>Default:</strong> <code>CacheDirLevels 3</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheDirLevels is only available in
+Apache 1.1 and later.<p>
+
+CacheDirLevels sets the number of levels of subdirectories in the cache.
+Cached data will be saved this many directory levels below CacheRoot.
+
+<A name="cachedirlength"><h2>CacheDirLength</h2></A>
+<strong>Syntax:</strong> CacheDirLength <em>&lt;length&gt;</em><br>
+<strong>Default:</strong> <code>CacheDirLength 1</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheDirLength is only available in
+Apache 1.1 and later.<p>
+
+CacheDirLength sets the number of characters in proxy cache subdirectory names.
+
+<A name="cachedefaultexpire"><h2>CacheDefaultExpire</h2></A>
+<strong>Syntax:</strong> CacheDefaultExpire <em>&lt;time&gt;</em><br>
+<strong>Default:</strong> <code>CacheDefaultExpire 1</code><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> CacheDefaultExpire is only available in
+Apache 1.1 and later.<p>
+
+If the document is fetched via a protocol that does not support expiry times,
+then use &lt;time&gt; hours as the expiry time.
+<a href="#cachemaxexpire">CacheMaxExpire</a> does <strong>not</strong>
+override.
+
+<A name="nocache"><h2>NoCache</h2></A>
+<strong>Syntax:</strong> NoCache <em>&lt;word/host/domain list&gt;</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_proxy<br>
+<strong>Compatibility:</strong> NoCache is only available in
+Apache 1.1 and later.<p>
+
+The NoCache directive specifies a list of words, hosts and/or domains, separated
+by spaces. HTTP and non-passworded FTP documents from matched words, hosts or
+domains are <em>not</em> cached by the proxy server. The proxy module will
+also attempt to determine IP addresses of list items which may be hostnames
+during startup, and cache them for match test as well. Example:
+
+<pre>
+ NoCache joes_garage.com some_host.co.uk bullwinkle.wotsamattau.edu
+</pre>
+
+'bullwinkle.wotsamattau.edu' would also be matched if referenced by IP
+address.<p>
+
+Note that 'wotsamattau' would also be sufficient to match 'wotsamattau.edu'.<p>
+
+Note also that
+
+<pre>
+NoCache *
+</pre>
+
+disables caching completely.<p>
+
+<hr>
+
+<a name="configs"><h2>Common configuration topics</h2></a>
+
+<ul>
+<li><a href="#access">Controlling access to your proxy</a>
+<li><a href="#shortname">Using Netscape hostname shortcuts</a>
+<li><a href="#mimetypes">Why doesn't file type <i>xxx</i> download via FTP?</a>
+<li><a href="#startup">Why does Apache start more slowly when using the
+ proxy module?</a>
+<li><a href="#socks">Can I use the Apache proxy module with my SOCKS proxy?</a>
+</ul>
+
+<h2><a name="access">Controlling access to your proxy</a></h2>
+
+You can control who can access your proxy via the normal &lt;Directory&gt;
+control block using the following example:<p>
+
+<pre>
+&lt;Directory proxy:*&gt;
+&lt;Limit GET PUT POST DELETE CONNECT OPTIONS&gt;
+order deny,allow
+deny from [machines you'd like *not* to allow by IP address or name]
+allow from [machines you'd like to allow by IP address or name]
+&lt;/Limit&gt;
+&lt;/Directory&gt;
+</pre><p>
+
+A &lt;Files&gt; block will also work, and is the only method known to work
+for all possible URLs in Apache versions earlier than 1.2b10.<p>
+
+<h2><a name="shortname">Using Netscape hostname shortcuts</a></h2>
+
+There is an optional patch to the proxy module to allow Netscape-like
+hostname shortcuts to be used. It's available
+<a href="http://www.apache.org/dist/contrib/patches/1.2/netscapehost.patch">
+here</a>.<p>
+
+<h2><a name="mimetypes">Why doesn't file type <i>xxx</i> download via FTP?</a></h2>
+
+You probably don't have that particular file type defined as
+<i>application/octet-stream</i> in your proxy's mime.types configuration
+file. A useful line can be<p>
+
+<pre>
+application/octet-stream bin dms lha lzh exe class tgz taz
+</pre>
+
+<h2><a name="startup">Why does Apache start more slowly when using the
+ proxy module?</a></h2>
+
+If you're using the <code>ProxyBlock</code> or <code>NoCache</code>
+directives, hostnames' IP addresses are looked up and cached during
+startup for later match test. This may take a few seconds (or more)
+depending on the speed with which the hostname lookups occur.<p>
+
+<h2><a name="socks">Can I use the Apache proxy module with my SOCKS proxy?</a></h2>
+
+Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in your
+<i>Configuration</i> file, and follow the instructions there. SOCKS5
+capability can be added in a similar way (there's no <code>SOCKS5</code>
+rule yet), so use the <code>EXTRA_LFLAGS</code> definition, or build Apache
+normally and run it with the <i>runsocks</i> wrapper provided with SOCKS5,
+if your OS supports dynamically linked libraries.<p>
+
+Some users have reported problems when using SOCKS version 4.2 on Solaris.
+The problem was solved by upgrading to SOCKS 4.3.<p>
+
+Remember that you'll also have to grant access to your Apache proxy machine by
+permitting connections on the appropriate ports in your SOCKS daemon's
+configuration.<p>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html b/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html
new file mode 100644
index 00000000000..44ed3239cf2
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html
@@ -0,0 +1,1231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!--%hypertext -->
+<!-- mod_rewrite.html -->
+<!-- Documentation for the mod_rewrite Apache module -->
+<html>
+<head>
+<title>Apache module mod_rewrite</title>
+</head>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+
+<h1 ALIGN="CENTER">Module mod_rewrite</h1>
+
+This module is contained in the <code>mod_rewrite.c</code> file, with Apache
+1.2 and later. It provides a rule-based rewriting engine to rewrite requested
+URLs on the fly. <code>mod_rewrite</code> is not compiled into the server by
+default. To use <code>mod_rewrite</code> you have to enable the following line
+in the server build Configuration file:
+<pre>
+ Module rewrite_module mod_rewrite.o
+</pre>
+
+<h2>Summary</h2>
+
+This module uses a rule-based rewriting engine (based on a
+regular-expression parser) to rewrite requested URLs on the fly.
+
+<p>
+It supports an unlimited number of additional rule conditions (which can
+operate on a lot of variables, including HTTP headers) for granular
+matching and external database lookups (either via plain text
+tables, DBM hash files or external processes) for advanced URL
+substitution.
+
+<p>
+It operates on the full URLs (including the PATH_INFO part) both in per-server
+context (httpd.conf) and per-dir context (.htaccess) and even can generate
+QUERY_STRING parts on result. The rewritten result can lead to internal
+sub-processing, external request redirection or to internal proxy throughput.
+
+<p>
+This module was originally written in April 1996 and
+gifted exclusively to the The Apache Group in July 1997 by
+<p>
+<blockquote>
+ <i>Ralf S. Engelschall</i><br>
+ <a href="mailto:rse@engelschall.com"><tt>rse@engelschall.com</tt></a><br>
+ <a href="http://www.engelschall.com/"><tt>www.engelschall.com</tt></a>
+</blockquote>
+
+<!--%hypertext -->
+<HR>
+<!--/%hypertext -->
+
+<p>
+<h2>Directives</h2>
+
+<ul>
+ <li><a href="#RewriteEngine">RewriteEngine</a>
+ <li><a href="#RewriteOptions">RewriteOptions</a>
+ <li><a href="#RewriteLog">RewriteLog</a>
+ <li><a href="#RewriteLogLevel">RewriteLogLevel</a>
+ <li><a href="#RewriteMap">RewriteMap</a>
+ <li><a href="#RewriteBase">RewriteBase</a>
+ <li><a href="#RewriteCond">RewriteCond</a>
+ <li><a href="#RewriteRule">RewriteRule</a>
+</ul>
+
+<!--%hypertext -->
+<hr>
+<!--/%hypertext -->
+
+
+<center>
+<a name="Configuration">
+<h1>Configuration Directives</h1>
+</a>
+</center>
+
+<a name="RewriteEngine"><h3>RewriteEngine</h3></a>
+<strong>Syntax:</strong> <code>RewriteEngine</code> {<code>on,off</code>}<br>
+<strong>Default:</strong> <strong><code>RewriteEngine off</code></strong><br>
+<strong>Context:</strong> server config, virtual host, per-directory config<br>
+<p>
+
+The <tt>RewriteEngine</tt> directive enables or disables the
+runtime rewriting engine. If it is set to <code>off</code> this module does
+no runtime processing at all. It does not even update the <tt>SCRIPT_URx</tt>
+environment variables.
+
+<p>
+Use this directive to disable the module instead of commenting out
+all <tt>RewriteRule</tt> directives!
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteOptions"><h3>RewriteOptions</h3></a>
+<strong>Syntax:</strong> <code>RewriteOptions</code> <em>Option</em> ...<br>
+<strong>Default:</strong> -<em>None</em>-<br>
+<strong>Context:</strong> server config, virtual host, per-directory config<br>
+<p>
+
+The <tt>RewriteOption</tt> directive sets some special options for the
+current per-server or per-directory configuration. The <em>Option</em>
+strings can be one of the following:
+
+<ul>
+<li>'<strong><code>inherit</code></strong>'<br>
+ This forces the current configuration to inherit the configuration of the
+ parent. In per-virtual-server context this means that the maps,
+ conditions and rules of the main server gets inherited. In per-directory
+ context this means that conditions and rules of the parent directory's
+ <tt>.htaccess</tt> configuration gets inherited.
+</ul>
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteLog"><h3>RewriteLog</h3></a>
+<strong>Syntax:</strong> <code>RewriteLog</code> <em>Filename</em><br>
+<strong>Default:</strong> -<em>None</em>-<br>
+<strong>Context:</strong> server config, virtual host<br>
+<p>
+
+The <tt>RewriteLog</tt> directive sets the name of the file to which the
+server logs any rewriting actions it performs. If the name does not begin
+with a slash ('<tt>/</tt>') then it is assumed to be relative to the
+<em>Server Root</em>. The directive should occur only once per server
+config.
+
+<p>
+<table width="70%" border=0 bgcolor="#f0f0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+To disable the logging of rewriting actions it is not recommended
+to set <em>Filename</em>
+to <code>/dev/null</code>, because although the rewriting engine does
+not create output to a logfile it still creates the logfile
+output internally. <b>This will slow down the server with no advantage to the
+administrator!</b>
+To disable logging either remove or comment out the
+<tt>RewriteLog</tt> directive or use <tt>RewriteLogLevel 0</tt>!
+</td></tr>
+</table>
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+SECURITY: See the <a
+href="../misc/security_tips.html">Apache Security
+Tips</a> document for details on why your security could be compromised if the
+directory where logfiles are stored is writable by anyone other than the user
+that starts the server.
+</td></tr>
+</table>
+
+<p>
+<b>Example:</b>
+<blockquote>
+<pre>
+RewriteLog "/usr/local/var/apache/logs/rewrite.log"
+</pre>
+</blockquote>
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteLogLevel"><h3>RewriteLogLevel</h3></a>
+<strong>Syntax:</strong> <code>RewriteLogLevel</code> <em>Level</em><br>
+<strong>Default:</strong> <strong><code>RewriteLogLevel 0</code></strong><br>
+<strong>Context:</strong> server config, virtual host<br>
+<p>
+
+The <tt>RewriteLogLevel</tt> directive set the verbosity level of the rewriting
+logfile. The default level 0 means no logging, while 9 or more means
+that practically all actions are logged.
+
+<p>
+To disable the logging of rewriting actions simply set <em>Level</em> to 0.
+This disables all rewrite action logs.
+
+<p>
+<table width="70%" border=0 bgcolor="#f0f0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+<b>Notice:</b> Using a high value for <i>Level</i> will slow down your Apache
+server dramatically! Use the rewriting logfile only for debugging or at least
+at <em>Level</em> not greater than 2!
+</td></tr>
+</table>
+
+
+<p>
+<b>Example:</b>
+<blockquote>
+<pre>
+RewriteLogLevel 3
+</pre>
+</blockquote>
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteMap"><h3>RewriteMap</h3></a>
+<strong>Syntax:</strong> <code>RewriteMap</code> <em>Mapname</em> <code>{txt,dbm,prg}:</code><em>Filename</em><br>
+<strong>Default:</strong> not used per default<br>
+<strong>Context:</strong> server config, virtual host<br>
+<p>
+
+The <tt>RewriteMap</tt> directive defines an external <em>Rewriting Map</em>
+which can be used inside rule substitution strings by the mapping-functions
+to insert/substitute fields through a key lookup.
+<p>
+
+The <a name="mapfunc"><em>Mapname</em></a> is the name of the map and will
+be used to specify a mapping-function for the substitution strings of a
+rewriting rule via
+
+<blockquote><strong>
+<code>${</code> <em>Mapname</em> <code>:</code> <em>LookupKey</em>
+<code>|</code> <em>DefaultValue</em> <code>}</code>
+</strong></blockquote>
+
+When such a directive occurs the map <em>Mapname</em>
+is consulted and the key <em>LookupKey</em> is looked-up. If the key is
+found, the map-function directive is substituted by <em>SubstValue</em>. If
+the key is not found then it is substituted by <em>DefaultValue</em>.
+
+<p>
+The <em>Filename</em> must be a valid Unix filepath, containing one
+of the following formats:
+
+<ol>
+<li><b>Plain Text Format</b>
+ <p>
+ This is a ASCII file which contains either blank lines, comment lines
+ (starting with a '#' character) or
+
+ <blockquote><strong>
+ <em>MatchingKey</em> <em>SubstValue</em>
+ </strong></blockquote>
+
+ pairs - one per line. You can create such files either manually,
+ using your favorite editor, or by using the programs
+ <tt>mapcollect</tt> and <tt>mapmerge</tt> from the <tt>support</tt>
+ directory of the <b>mod_rewrite</b> distribution.
+ <p>
+ To declare such a map prefix, <em>Filename</em> with a <code>txt:</code>
+ string as in the following example:
+
+<p>
+<table border=0 cellspacing=1 cellpadding=5 bgcolor="#f0f0f0">
+<tr><td><pre>
+#
+# map.real-to-user -- maps realnames to usernames
+#
+
+Ralf.S.Engelschall rse # Bastard Operator From Hell
+Dr.Fred.Klabuster fred # Mr. DAU
+</pre></td></tr>
+</table>
+
+<p>
+<table border=0 cellspacing=1 cellpadding=5 bgcolor="#f0f0f0">
+<tr><td><pre>
+RewriteMap real-to-host txt:/path/to/file/map.real-to-user
+</pre></td></tr>
+</table>
+
+<p>
+<li><b>DBM Hashfile Format</b>
+ <p>
+ This is a binary NDBM format file containing the
+ same contents as the <em>Plain Text Format</em> files. You can create
+ such a file with any NDBM tool or with the <tt>dbmmanage</tt> program
+ from the <tt>support</tt> directory of the Apache distribution.
+ <p>
+ To declare such a map prefix <em>Filename</em> with a <code>dbm:</code>
+ string.
+<p>
+<li><b>Program Format</b>
+ <p>
+ This is a Unix executable, not a lookup file. To create it you can use
+ the language of your choice, but the result has to be a run-able Unix
+ binary (i.e. either object-code or a script with the
+ magic cookie trick '<tt>#!/path/to/interpreter</tt>' as the first line).
+ <p>
+ This program gets started once at startup of the Apache servers and then
+ communicates with the rewriting engine over its <tt>stdin</tt> and
+ <tt>stdout</tt> file-handles. For each map-function lookup it will
+ receive the key to lookup as a newline-terminated string on
+ <tt>stdin</tt>. It then has to give back the looked-up value as a
+ newline-terminated string on <tt>stdout</tt> or the four-character string
+ ``<tt>NULL</tt>'' if it fails (i.e. there is no corresponding value
+ for the given key). A trivial program which will implement a 1:1 map
+ (i.e. key == value) could be:
+ <p>
+<table border=0 cellspacing=1 cellpadding=5 bgcolor="#f0f0f0">
+<tr><td><pre>
+#!/usr/bin/perl
+$| = 1;
+while (&lt;STDIN&gt;) {
+ # ...here any transformations
+ # or lookups should occur...
+ print $_;
+}
+</pre></td></tr>
+</table>
+ <p>
+ <b>But be very careful:</b><br>
+ <ol>
+ <li>``<i>Keep the program simple, stupid</i>'' (KISS), because
+ if this program hangs it will lead to a hang of the Apache server
+ when the rule occurs.
+ <li>Avoid one common mistake: never do buffered I/O on <tt>stdout</tt>!
+ This will cause a deadloop! Hence the ``<tt>$|=1</tt>'' in the above
+ example...
+ </ol>
+ <p>
+ To declare such a map prefix <em>Filename</em> with a <code>prg:</code>
+ string.
+</ol>
+
+The <tt>RewriteMap</tt> directive can occur more than once. For each
+mapping-function use one <tt>RewriteMap</tt> directive to declare its
+rewriting mapfile. While you cannot <b>declare</b> a map in per-directory
+context it is of course possible to <b>use</b> this map in per-directory
+context.
+
+<p>
+<table width="70%" border=0 bgcolor="#f0f0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+For plain text and DBM format files the looked-up keys are cached in-core
+until the <tt>mtime</tt> of the mapfile changes or the server does a
+restart. This way you can have map-functions in rules which are used
+for <b>every</b> request. This is no problem, because the external lookup
+only happens once!
+</td></tr>
+</table>
+
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteBase"><h3>RewriteBase</h3></a>
+<strong>Syntax:</strong> <code>RewriteBase</code> <em>BaseURL</em><br>
+<strong>Default:</strong> <em>default is the physical directory path</em><br>
+<strong>Context:</strong> per-directory config<br>
+<p>
+
+The <tt>RewriteBase</tt> directive explicitly sets the base URL for
+per-directory rewrites. As you will see below, <tt>RewriteRule</tt> can be
+used in per-directory config files (<tt>.htaccess</tt>). There it will act
+locally, i.e. the local directory prefix is stripped at this stage of
+processing and your rewriting rules act only on the remainder. At the end
+it is automatically added.
+
+<p>
+When a substitution occurs for a new URL, this module has to
+re-inject the URL into the server processing. To be able to do this it needs
+to know what the corresponding URL-prefix or URL-base is. By default this
+prefix is the corresponding filepath itself. <b>But at most websites URLs are
+<b>NOT</b> directly related to physical filename paths, so this assumption
+will be usually be wrong!</b> There you have to use the <tt>RewriteBase</tt>
+directive to specify the correct URL-prefix.
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+So, if your webserver's URLs are <b>not</b> directly
+related to physical file paths, you have to use <tt>RewriteBase</tt> in every
+<tt>.htaccess</tt> files where you want to use <tt>RewriteRule</tt>
+directives.
+</td></tr>
+</table>
+
+<p>
+<b>Example:</b>
+
+<blockquote>
+ Assume the following per-directory config file:
+
+<p>
+<table border=0 cellspacing=1 cellpadding=5 bgcolor="#f0f0f0">
+<tr><td><pre>
+#
+# /abc/def/.htaccess -- per-dir config file for directory /abc/def
+# Remember: /abc/def is the physical path of /xyz, i.e. the server
+# has a 'Alias /xyz /abc/def' directive e.g.
+#
+
+RewriteEngine On
+
+# let the server know that we are reached via /xyz and not
+# via the physical path prefix /abc/def
+RewriteBase /xyz
+
+# now the rewriting rules
+RewriteRule ^oldstuff\.html$ newstuff.html
+</pre></td></tr>
+</table>
+
+<p>
+In the above example, a request to <tt>/xyz/oldstuff.html</tt> gets correctly
+rewritten to the physical file <tt>/abc/def/newstuff.html</tt>.
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+<font size=-1>
+<b>For the Apache hackers:</b><br>
+The following list gives detailed information about the internal
+processing steps:
+
+<p>
+<pre>
+Request:
+ /xyz/oldstuff.html
+
+Internal Processing:
+ /xyz/oldstuff.html -&gt; /abc/def/oldstuff.html (per-server Alias)
+ /abc/def/oldstuff.html -&gt; /abc/def/newstuff.html (per-dir RewriteRule)
+ /abc/def/newstuff.html -&gt; /xyz/newstuff.html (per-dir RewriteBase)
+ /xyz/newstuff.html -&gt; /abc/def/newstuff.html (per-server Alias)
+
+Result:
+ /abc/def/newstuff.html
+</pre>
+
+This seems very complicated but is the correct Apache internal processing,
+because the per-directory rewriting comes too late in the process. So,
+when it occurs the (rewritten) request has to be re-injected into the Apache
+kernel! BUT: While this seems like a serious overhead, it really isn't, because
+this re-injection happens fully internal to the Apache server and the same
+procedure is used by many other operations inside Apache. So, you can be
+sure the design and implementation is correct.
+</font>
+</td></tr>
+</table>
+
+</blockquote>
+
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteCond"><h3>RewriteCond</h3></a>
+<strong>Syntax:</strong> <code>RewriteCond</code> <em>TestString</em> <em>CondPattern</em><br>
+<strong>Default:</strong> -<em>None</em>-<br>
+<strong>Context:</strong> server config, virtual host, per-directory config<br>
+<p>
+
+The <tt>RewriteCond</tt> directive defines a rule condition. Precede a
+<tt>RewriteRule</tt> directive with one or more <tt>RewriteCond</tt>
+directives.
+
+The following rewriting rule is only used if its pattern matches the current
+state of the URI <b>AND</b> if these additional conditions apply, too.
+
+<p>
+<em>TestString</em> is a string which contains server-variables of the form
+
+<blockquote><strong>
+<tt>%{</tt> <em>NAME_OF_VARIABLE</em> <tt>}</tt>
+</strong></blockquote>
+
+where <em>NAME_OF_VARIABLE</em> can be a string
+of the following list:
+
+<p>
+<table bgcolor="#f0f0f0" cellspacing=0 cellpadding=5>
+<tr>
+<td valign=top>
+<b>HTTP headers:</b><p>
+<font size=-1>
+HTTP_USER_AGENT<br>
+HTTP_REFERER<br>
+HTTP_COOKIE<br>
+HTTP_FORWARDED<br>
+HTTP_HOST<br>
+HTTP_PROXY_CONNECTION<br>
+HTTP_ACCEPT<br>
+</font>
+</td>
+
+<td valign=top>
+<b>connection &amp; request:</b><p>
+<font size=-1>
+REMOTE_ADDR<br>
+REMOTE_HOST<br>
+REMOTE_USER<br>
+REMOTE_IDENT<br>
+REQUEST_METHOD<br>
+SCRIPT_FILENAME<br>
+PATH_INFO<br>
+QUERY_STRING<br>
+AUTH_TYPE<br>
+</font>
+</td>
+
+</tr>
+<tr>
+
+<td valign=top>
+<b>server internals:</b><p>
+<font size=-1>
+DOCUMENT_ROOT<br>
+SERVER_ADMIN<br>
+SERVER_NAME<br>
+SERVER_PORT<br>
+SERVER_PROTOCOL<br>
+SERVER_SOFTWARE<br>
+SERVER_VERSION<br>
+</font>
+</td>
+
+<td valign=top>
+<b>system stuff:</b><p>
+<font size=-1>
+TIME_YEAR<br>
+TIME_MON<br>
+TIME_DAY<br>
+TIME_HOUR<br>
+TIME_MIN<br>
+TIME_SEC<br>
+TIME_WDAY<br>
+TIME<br>
+</font>
+</td>
+
+<td valign=top>
+<b>specials:</b><p>
+<font size=-1>
+API_VERSION<br>
+THE_REQUEST<br>
+REQUEST_URI<br>
+REQUEST_FILENAME<br>
+IS_SUBREQ<br>
+</font>
+</td>
+</tr>
+</table>
+
+
+<p>
+<table width="70%" border=0 bgcolor="#f0f0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+These variables all correspond to the similar named HTTP MIME-headers, C
+variables of the Apache server or <tt>struct tm</tt> fields of the Unix
+system.
+</td></tr>
+</table>
+
+<p>
+Special Notes:
+<ol>
+<li>The variables SCRIPT_FILENAME and REQUEST_FILENAME contain the same
+value, i.e. the value of the <tt>filename</tt> field of the internal
+<tt>request_rec</tt> structure of the Apache server. The first name is just the
+commonly known CGI variable name while the second is the consistent
+counterpart to REQUEST_URI (which contains the value of the <tt>uri</tt>
+field of <tt>request_rec</tt>).
+
+<p>
+<li>There is the special format: <tt>%{ENV:variable}</tt> where
+<i>variable</i> can be any environment variable. This is looked-up via
+internal Apache structures and (if not found there) via <tt>getenv()</tt> from
+the Apache server process.
+
+<p>
+<li>There is the special format: <tt>%{HTTP:header}</tt> where
+<i>header</i> can be any HTTP MIME-header name. This is looked-up
+from the HTTP request. Example: <tt>%{HTTP:Proxy-Connection}</tt>
+is the value of the HTTP header ``<tt>Proxy-Connection:</tt>''.
+
+<p>
+<li>There is the special format: <tt>%{LA-U:url}</tt>
+for look-aheads like <tt>-U</tt>. This performs a internal sub-request to
+look-ahead for the final value of <i>url</i>.
+
+<p>
+<li>There is the special format: <tt>%{LA-F:file}</tt>
+for look-aheads like <tt>-F</tt>. This performs a internal sub-request to
+look-ahead for the final value of <i>file</i>.
+</ol>
+
+<p>
+<em>CondPattern</em> is the condition pattern, i.e. a regular expression
+which gets applied to the current instance of the <em>TestString</em>, i.e.
+<em>TestString</em> gets evaluated and then matched against
+<em>CondPattern</em>.
+
+<p>
+<b>Remember:</b> <em>CondPattern</em> is a standard
+<em>Extended Regular Expression</em> with some additions:
+
+<ol>
+<li>You can precede the pattern string with a '<tt>!</tt>' character
+(exclamation mark) to specify a <b>non</b>-matching pattern.
+
+<p>
+<li>
+There are some special variants of <em>CondPatterns</em>. Instead of real
+regular expression strings you can also use one of the following:
+<p>
+<ul>
+<li>'<b>&lt;CondPattern</b>' (is lexicographically lower)<br>
+Treats the <i>CondPattern</i> as a plain string and compares it
+lexicographically to <i>TestString</i> and results in a true expression if
+<i>TestString</i> is lexicographically lower then <i>CondPattern</i>.
+<p>
+<li>'<b>&gt;CondPattern</b>' (is lexicographically greater)<br>
+Treats the <i>CondPattern</i> as a plain string and compares it
+lexicographically to <i>TestString</i> and results in a true expression if
+<i>TestString</i> is lexicographically greater then <i>CondPattern</i>.
+<p>
+<li>'<b>=CondPattern</b>' (is lexicographically equal)<br>
+Treats the <i>CondPattern</i> as a plain string and compares it
+lexicographically to <i>TestString</i> and results in a true expression if
+<i>TestString</i> is lexicographically equal to <i>CondPattern</i>, i.e the
+two strings are exactly equal (character by character).
+<p>
+<li>'<b>-d</b>' (is <b>d</b>irectory)<br>
+Treats the <i>TestString</i> as a pathname and
+tests if it exists and is a directory.
+<p>
+<li>'<b>-f</b>' (is regular <b>f</b>ile)<br>
+Treats the <i>TestString</i> as a pathname and
+tests if it exists and is a regular file.
+<p>
+<li>'<b>-s</b>' (is regular file with <b>s</b>ize)<br>
+Treats the <i>TestString</i> as a pathname and
+tests if it exists and is a regular file with size greater then zero.
+<p>
+<li>'<b>-l</b>' (is symbolic <b>l</b>ink)<br>
+Treats the <i>TestString</i> as a pathname and
+tests if it exists and is a symbolic link.
+<p>
+<li>'<b>-F</b>' (is existing file via subrequest)<br>
+Checks if <i>TestString</i> is a valid file and accessible via all the
+server's currently-configured access controls for that path. This uses an
+internal subrequest to determine the check, so use it with care because it
+decreases your servers performance!
+<p>
+<li>'<b>-U</b>' (is existing URL via subrequest)<br>
+Checks if <i>TestString</i> is a valid URL and accessible via all the server's
+currently-configured access controls for that path. This uses an internal
+subrequest to determine the check, so use it with care because it decreases
+your servers performance!
+</ul>
+<p>
+Notice: All of these tests can also be prefixed by a not ('!') character
+to negate their meaning.
+</ol>
+
+<p>
+Additionally you can set special flags for <em>CondPattern</em> by appending
+
+<blockquote><strong>
+<code>[</code><em>flags</em><code>]</code>
+</strong></blockquote>
+
+as the third argument to the <tt>RewriteCond</tt> directive. <em>Flags</em>
+is a comma-separated list of the following flags:
+
+<ul>
+<li>'<strong><code>nocase|NC</code></strong>' (<b>n</b>o <b>c</b>ase)<br>
+ This makes the condition test case-insensitive, i.e. there is
+ no difference between 'A-Z' and 'a-z' both in the expanded
+ <em>TestString</em> and the <em>CondPattern</em>.
+<p>
+<li>'<strong><code>ornext|OR</code></strong>' (<b>or</b> next condition)<br>
+ Use this to combine rule conditions with a local OR instead of the
+ implicit AND. Typical example:
+ <p>
+<blockquote><pre>
+RewriteCond %{REMOTE_HOST} ^host1.* [OR]
+RewriteCond %{REMOTE_HOST} ^host2.* [OR]
+RewriteCond %{REMOTE_HOST} ^host3.*
+RewriteRule ...some special stuff for any of these hosts...
+</pre></blockquote>
+ Without this flag you had to write down the cond/rule three times.
+</ul>
+
+<p>
+<b>Example:</b>
+<blockquote>
+
+To rewrite the Homepage of a site according to the ``<tt>User-Agent:</tt>''
+header of the request, you can use the following:
+
+<blockquote><pre>
+RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
+RewriteRule ^/$ /homepage.max.html [L]
+
+RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
+RewriteRule ^/$ /homepage.min.html [L]
+
+RewriteRule ^/$ /homepage.std.html [L]
+</pre></blockquote>
+
+Interpretation: If you use Netscape Navigator as your browser (which identifies
+itself as 'Mozilla'), then you get the max homepage, which includes
+Frames, etc. If you use the Lynx browser (which is Terminal-based), then you
+get the min homepage, which contains no images, no tables, etc. If you
+use any other browser you get the standard homepage.
+</blockquote>
+
+<p>
+<hr noshade size=1>
+<p>
+
+<a name="RewriteRule"><h3>RewriteRule</h3></a>
+<strong>Syntax:</strong> <code>RewriteRule</code> <em>Pattern</em> <em>Substitution</em><br>
+<strong>Default:</strong> -<em>None</em>-<br>
+<strong>Context:</strong> server config, virtual host, per-directory config<br>
+
+<p>
+The <tt>RewriteRule</tt> directive is the real rewriting workhorse. The
+directive can occur more than once. Each directive then defines one single
+rewriting rule. The <b>definition order</b> of these rules is
+<b>important</b>, because this order is used when applying the rules at
+run-time.
+
+<p>
+<a name="patterns"><em>Pattern</em></a> can be (for Apache 1.1.x a System
+V8 and for Apache 1.2.x a POSIX) <a name="regexp">regular expression</a>
+which gets applied to the current URL. Here ``current'' means the value of the
+URL when this rule gets applied. This may not be the original requested
+URL, because there could be any number of rules before which already matched
+and made alterations to it.
+
+<p>
+Some hints about the syntax of regular expressions:
+
+<p>
+<table bgcolor="#f0f0f0" cellspacing=0 cellpadding=5>
+<tr>
+<td valign=top>
+<pre>
+<strong><code>^</code></strong> Start of line
+<strong><code>$</code></strong> End of line
+<strong><code>.</code></strong> Any single character
+<strong><code>[</code></strong>chars<strong><code>]</code></strong> One of chars
+<strong><code>[^</code></strong>chars<strong><code>]</code></strong> None of chars
+
+<strong><code>?</code></strong> 0 or 1 of the preceding char
+<strong><code>*</code></strong> 0 or N of the preceding char
+<strong><code>+</code></strong> 1 or N of the preceding char
+
+<strong><code>\</code></strong>char escape that specific char
+ (e.g. for specifying the chars "<code>.[]()</code>" etc.)
+
+<strong><code>(</code></strong>string<strong><code>)</code></strong> Grouping of chars (the <b>N</b>th group can be used on the RHS with <code>$</code><b>N</b>)
+</pre>
+</td>
+</tr>
+</table>
+
+<p>
+Additionally the NOT character ('<tt>!</tt>') is a possible pattern
+prefix. This gives you the ability to negate a pattern; to say, for instance: ``<i>if
+the current URL does <b>NOT</b> match to this pattern</i>''. This can be used
+for special cases where it is better to match the negative pattern or as a
+last default rule.
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+<b>Notice!</b> When using the NOT character to negate a pattern you cannot
+have grouped wildcard parts in the pattern. This is impossible because when
+the pattern does NOT match, there are no contents for the groups. In
+consequence, if negated patterns are used, you cannot use <tt>$N</tt> in the
+substitution string!
+</td></tr>
+</table>
+
+<p>
+<a name="rhs"><em>Substitution</em></a> of a rewriting rule is the string
+which is substituted for (or replaces) the original URL for which
+<em>Pattern</em> matched. Beside plain text you can use
+
+<ol>
+<li>pattern-group back-references (<code>$N</code>)
+<li>server-variables as in rule condition test-strings (<code>%{VARNAME}</code>)
+<li><a href="#mapfunc">mapping-function</a> calls (<code>${mapname:key|default}</code>)
+</ol>
+
+Back-references are <code>$</code><b>N</b> (<b>N</b>=1..9) identifiers which
+will be replaced by the contents of the <b>N</b>th group of the matched
+<em>Pattern</em>. The server-variables are the same as for the
+<em>TestString</em> of a <tt>RewriteCond</tt> directive. The
+mapping-functions come from the <tt>RewriteMap</tt> directive and are
+explained there. These three types of variables are expanded in the order of
+the above list.
+
+<p>
+As already mentioned above, all the rewriting rules are applied to the
+<em>Substitution</em> (in the order of definition in the config file). The
+URL is <b>completely replaced</b> by the <em>Substitution</em> and the
+rewriting process goes on until there are no more rules (unless explicitly
+terminated by a <code><b>L</b></code> flag - see below).
+
+<p>
+There is a special substitution string named '<tt>-</tt>' which means:
+<b>NO substitution</b>! Sounds silly? No, it is useful to provide rewriting
+rules which <b>only</b> match some URLs but do no substitution, e.g. in
+conjunction with the <b>C</b> (chain) flag to be able to have more than one
+pattern to be applied before a substitution occurs.
+
+<p>
+One more note: You can even create URLs in the substitution string containing
+a query string part. Just use a question mark inside the substitution string
+to indicate that the following stuff should be re-injected into the
+QUERY_STRING. When you want to erase an existing query string, end the
+substitution string with just the question mark.
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+<b>Notice</b>: There is a special feature. When you prefix a substitution
+field with <tt>http://</tt><em>thishost</em>[<em>:thisport</em>] then
+<b>mod_rewrite</b> automatically strips it out. This auto-reduction on
+implicit external redirect URLs is a useful and important feature when
+used in combination with a mapping-function which generates the hostname
+part. Have a look at the first example in the example section below to
+understand this.
+<p>
+<b>Remember:</b> An unconditional external redirect to your own server will
+not work with the prefix <tt>http://thishost</tt> because of this feature.
+To achieve such a self-redirect, you have to use the <b>R</b>-flag (see
+below).
+</td></tr>
+</table>
+
+<p>
+Additionally you can set special flags for <em>Substitution</em> by appending
+
+<blockquote><strong>
+<code>[</code><em>flags</em><code>]</code>
+</strong></blockquote>
+
+as the third argument to the <tt>RewriteRule</tt> directive. <em>Flags</em> is a
+comma-separated list of the following flags:
+
+<ul>
+<li>'<strong><code>redirect|R</code>[=<i>code</i>]</strong>' (force <a name="redirect"><b>r</b>edirect</a>)<br>
+ Prefix <em>Substitution</em>
+ with <code>http://thishost[:thisport]/</code> (which makes the new URL a URI) to
+ force a external redirection. If no <i>code</i> is given a HTTP response
+ of 302 (MOVED TEMPORARILY) is used. If you want to use other response
+ codes in the range 300-400 just specify them as a number or use
+ one of the following symbolic names: <tt>temp</tt> (default), <tt>permanent</tt>,
+ <tt>seeother</tt>.
+ Use it for rules which should
+ canonicalize the URL and gives it back to the client, e.g. translate
+ ``<code>/~</code>'' into ``<code>/u/</code>'' or always append a slash to
+ <code>/u/</code><em>user</em>, etc.<br>
+ <p>
+ <b>Notice:</b> When you use this flag, make sure that the
+ substitution field is a valid URL! If not, you are redirecting to an
+ invalid location! And remember that this flag itself only prefixes the
+ URL with <code>http://thishost[:thisport]/</code>, but rewriting goes on.
+ Usually you also want to stop and do the redirection immediately. To stop
+ the rewriting you also have to provide the 'L' flag.
+<p>
+<li>'<strong><code>forbidden|F</code></strong>' (force URL to be <b>f</b>orbidden)<br>
+ This forces the current URL to be forbidden, i.e. it immediately sends
+ back a HTTP response of 403 (FORBIDDEN). Use this flag in conjunction with
+ appropriate RewriteConds to conditionally block some URLs.
+<p>
+<li>'<strong><code>gone|G</code></strong>' (force URL to be <b>g</b>one)<br>
+ This forces the current URL to be gone, i.e. it immediately sends back a
+ HTTP response of 410 (GONE). Use this flag to mark no longer existing
+ pages as gone.
+<p>
+<li>'<strong><code>proxy|P</code></strong>' (force <b>p</b>roxy)<br>
+ This flag forces the substitution part to be internally forced as a proxy
+ request and immediately (i.e. rewriting rule processing stops here) put
+ through the proxy module. You have to make sure that the substitution
+ string is a valid URI (e.g. typically <tt>http://</tt>) which can
+ be handled by the Apache proxy module. If not you get an error from
+ the proxy module. Use this flag to achieve a more powerful implementation
+ of the <tt>mod_proxy</tt> directive <tt>ProxyPass</tt>, to map
+ some remote stuff into the namespace of the local server.
+ <p>
+ Notice: <b>You really have to put <tt>ProxyRequests On</tt> into your
+ server configuration to prevent proxy requests from leading to core-dumps
+ inside the Apache kernel. If you have not compiled in the proxy module,
+ then there is no core-dump problem, because mod_rewrite checks for
+ existence of the proxy module and if lost forbids proxy URLs. </b>
+<p>
+<li>'<strong><code>last|L</code></strong>' (<b>l</b>ast rule)<br>
+ Stop the rewriting process here and
+ don't apply any more rewriting rules. This corresponds to the Perl
+ <code>last</code> command or the <code>break</code> command from the C
+ language. Use this flag to prevent the currently rewritten URL from being
+ rewritten further by following rules which may be wrong. For
+ example, use it to rewrite the root-path URL ('<code>/</code>') to a real
+ one, e.g. '<code>/e/www/</code>'.
+<p>
+<li>'<strong><code>next|N</code></strong>' (<b>n</b>ext round)<br>
+ Re-run the rewriting process (starting again with the first rewriting
+ rule). Here the URL to match is again not the original URL but the URL
+ from the last rewriting rule. This corresponds to the Perl
+ <code>next</code> command or the <code>continue</code> command from the C
+ language. Use this flag to restart the rewriting process, i.e. to
+ immediately go to the top of the loop. <br>
+ <b>But be careful not to create a deadloop!</b>
+<p>
+<li>'<strong><code>chain|C</code></strong>' (<b>c</b>hained with next rule)<br>
+ This flag chains the current rule with the next rule (which itself can
+ also be chained with its following rule, etc.). This has the following
+ effect: if a rule matches, then processing continues as usual, i.e. the
+ flag has no effect. If the rule does <b>not</b> match, then all following
+ chained rules are skipped. For instance, use it to remove the
+ ``<tt>.www</tt>'' part inside a per-directory rule set when you let an
+ external redirect happen (where the ``<tt>.www</tt>'' part should not to
+ occur!).
+<p>
+<li>'<strong><code>type|T</code></strong>=<em>mime-type</em>' (force MIME <b>t</b>ype)<br>
+ Force the MIME-type of the target file to be <em>mime-type</em>. For
+ instance, this can be used to simulate the old <tt>mod_alias</tt>
+ directive <tt>ScriptAlias</tt> which internally forces all files inside
+ the mapped directory to have a MIME type of
+ ``<tt>application/x-httpd-cgi</tt>''.
+<p>
+<li>'<strong><code>nosubreq|NS</code></strong>' (used only if <b>n</b>o internal <b>s</b>ub-request)<br>
+ This flag forces the rewriting engine to skip a rewriting rule if the
+ current request is an internal sub-request. For instance, sub-requests
+ occur internally in Apache when <tt>mod_include</tt> tries to find out
+ information about possible directory default files (<tt>index.xxx</tt>).
+ On sub-requests it is not always useful and even sometimes causes a failure to
+ if the complete set of rules are applied. Use this flag to exclude some rules.<br>
+ <p>
+ Use the following rule for your decision: whenever you prefix some URLs
+ with CGI-scripts to force them to be processed by the CGI-script, the
+ chance is high that you will run into problems (or even overhead) on sub-requests.
+ In these cases, use this flag.
+<p>
+<li>'<strong><code>qsappend|QSA</code></strong>' (<b>q</b>uery <b>s</b>tring
+ <b>a</b>ppend)<br>
+ This flag forces the rewriting engine to append a query
+ string part in the substitution string to the existing one instead of
+ replacing it. Use this when you want to add more data to the query string
+ via a rewrite rule.
+<p>
+<li>'<strong><code>passthrough|PT</code></strong>' (<b>p</b>ass <b>t</b>hrough to next handler)<br>
+ This flag forces the rewriting engine to set the <code>uri</code> field
+ of the internal <code>request_rec</code> structure to the value
+ of the <code>filename</code> field. This flag is just a hack to be able
+ to post-process the output of <tt>RewriteRule</tt> directives by
+ <tt>Alias</tt>, <tt>ScriptAlias</tt>, <tt>Redirect</tt>, etc. directives
+ from other URI-to-filename translators. A trivial example to show the
+ semantics:
+ If you want to rewrite <tt>/abc</tt> to <tt>/def</tt> via the rewriting
+ engine of <tt>mod_rewrite</tt> and then <tt>/def</tt> to <tt>/ghi</tt>
+ with <tt>mod_alias</tt>:
+ <pre>
+ RewriteRule ^/abc(.*) /def$1 [PT]
+ Alias /def /ghi
+ </pre>
+ If you omit the <tt>PT</tt> flag then <tt>mod_rewrite</tt>
+ will do its job fine, i.e. it rewrites <tt>uri=/abc/...</tt> to
+ <tt>filename=/def/...</tt> as a full API-compliant URI-to-filename
+ translator should do. Then <tt>mod_alias</tt> comes and tries to do a
+ URI-to-filename transition which will not work.
+ <p>
+ Notice: <b>You have to use this flag if you want to intermix directives
+ of different modules which contain URL-to-filename translators</b>. The
+ typical example is the use of <tt>mod_alias</tt> and
+ <tt>mod_rewrite</tt>..
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+<font size=-1>
+ <b>For the Apache hackers:</b><br>
+ If the current Apache API had a
+ filename-to-filename hook additionally to the URI-to-filename hook then
+ we wouldn't need this flag! But without such a hook this flag is the
+ only solution. The Apache Group has discussed this problem and will
+ add such hooks into Apache version 2.0.
+</font>
+</td></tr>
+</table>
+<p>
+<li>'<strong><code>skip|S</code></strong>=<em>num</em>' (<b>s</b>kip next rule(s))<br>
+ This flag forces the rewriting engine to skip the next <em>num</em> rules
+ in sequence when the current rule matches. Use this to make pseudo
+ if-then-else constructs: The last rule of the then-clause becomes
+ a <tt>skip=N</tt> where N is the number of rules in the else-clause.
+ (This is <b>not</b> the same as the 'chain|C' flag!)
+<p>
+<li>'<strong><code>env|E=</code></strong><i>VAR</i>:<i>VAL</i>' (set <b>e</b>nvironment variable)<br>
+ This forces an environment variable named <i>VAR</i> to be set to the value
+ <i>VAL</i>, where <i>VAL</i> can contain regexp backreferences <tt>$N</tt>
+ which will be expanded. You can use this flag more than once to set more
+ than one variable. The variables can be later dereferenced at a lot of
+ situations, but the usual location will be from within XSSI (via
+ <tt>&lt;!--#echo var="VAR"--&gt;</tt>) or CGI (e.g. <tt>$ENV{'VAR'}</tt>).
+ But additionally you can also dereference it in a following RewriteCond
+ pattern via <tt>%{ENV:VAR}</tt>. Use this to strip but remember
+ information from URLs.
+</ul>
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+Remember: Never forget that <em>Pattern</em> gets applied to a complete URL
+in per-server configuration files. <b>But in per-directory configuration
+files, the per-directory prefix (which always is the same for a specific
+directory!) gets automatically <em>removed</em> for the pattern matching and
+automatically <em>added</em> after the substitution has been done.</b> This feature is
+essential for many sorts of rewriting, because without this prefix stripping
+you have to match the parent directory which is not always possible.
+<p>
+There is one exception: If a substitution string starts with
+``<tt>http://</tt>'' then the directory prefix will be <b>not</b> added and a
+external redirect or proxy throughput (if flag <b>P</b> is used!) is forced!
+</td></tr>
+</table>
+
+<p>
+<table width="70%" border=0 bgcolor="#fff0f0" cellspacing=0 cellpadding=10>
+<tr><td>
+Notice! To enable the rewriting engine for per-directory configuration files
+you need to set ``<tt>RewriteEngine On</tt>'' in these files <b>and</b>
+``<tt>Option FollowSymLinks</tt>'' enabled. If your administrator has
+disabled override of <tt>FollowSymLinks</tt> for a user's directory, then
+you cannot use the rewriting engine. This restriction is needed for
+security reasons.
+</td></tr>
+</table>
+
+<p>
+Here are all possible substitution combinations and their meanings:
+
+<p>
+<b>Inside per-server configuration (<tt>httpd.conf</tt>)<br>
+for request ``<tt>GET /somepath/pathinfo</tt>'':</b><br>
+
+<p>
+<table bgcolor="#f0f0f0" cellspacing=0 cellpadding=5>
+<tr>
+<td>
+<pre>
+<b>Given Rule</b> <b>Resulting Substitution</b>
+---------------------------------------------- ----------------------------------
+^/somepath(.*) otherpath$1 not supported, because invalid!
+
+^/somepath(.*) otherpath$1 [R] not supported, because invalid!
+
+^/somepath(.*) otherpath$1 [P] not supported, because invalid!
+---------------------------------------------- ----------------------------------
+^/somepath(.*) /otherpath$1 /otherpath/pathinfo
+
+^/somepath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo
+ via external redirection
+
+^/somepath(.*) /otherpath$1 [P] not supported, because silly!
+---------------------------------------------- ----------------------------------
+^/somepath(.*) http://thishost/otherpath$1 /otherpath/pathinfo
+
+^/somepath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo
+ via external redirection
+
+^/somepath(.*) http://thishost/otherpath$1 [P] not supported, because silly!
+---------------------------------------------- ----------------------------------
+^/somepath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo
+ via external redirection
+
+^/somepath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo
+ via external redirection
+ (the [R] flag is redundant)
+
+^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
+ via internal proxy
+</pre>
+</td>
+</tr>
+</table>
+
+<p>
+<b>Inside per-directory configuration for <tt>/somepath</tt><br>
+(i.e. file <tt>.htaccess</tt> in dir <tt>/physical/path/to/somepath</tt> containing
+<tt>RewriteBase /somepath</tt>)<br> for
+request ``<tt>GET /somepath/localpath/pathinfo</tt>'':</b><br>
+
+<p>
+<table bgcolor="#f0f0f0" cellspacing=0 cellpadding=5>
+<tr>
+<td>
+<pre>
+<b>Given Rule</b> <b>Resulting Substitution</b>
+---------------------------------------------- ----------------------------------
+^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo
+
+^localpath(.*) otherpath$1 [R] http://thishost/somepath/otherpath/pathinfo
+ via external redirection
+
+^localpath(.*) otherpath$1 [P] not supported, because silly!
+---------------------------------------------- ----------------------------------
+^localpath(.*) /otherpath$1 /otherpath/pathinfo
+
+^localpath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo
+ via external redirection
+
+^localpath(.*) /otherpath$1 [P] not supported, because silly!
+---------------------------------------------- ----------------------------------
+^localpath(.*) http://thishost/otherpath$1 /otherpath/pathinfo
+
+^localpath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo
+ via external redirection
+
+^localpath(.*) http://thishost/otherpath$1 [P] not supported, because silly!
+---------------------------------------------- ----------------------------------
+^localpath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo
+ via external redirection
+
+^localpath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo
+ via external redirection
+ (the [R] flag is redundant)
+
+^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
+ via internal proxy
+</pre>
+</td>
+</tr>
+</table>
+
+
+<p>
+<b>Example:</b>
+<p>
+<blockquote>
+We want to rewrite URLs of the form
+<blockquote>
+<code>/</code> <em>Language</em>
+<code>/~</code> <em>Realname</em>
+<code>/.../</code> <em>File</em>
+</blockquote>
+into
+<blockquote>
+<code>/u/</code> <em>Username</em>
+<code>/.../</code> <em>File</em>
+<code>.</code> <em>Language</em>
+</blockquote>
+<p>
+We take the rewrite mapfile from above and save it under
+<code>/anywhere/map.real-to-user</code>. Then we only have to add the
+following lines to the Apache server configuration file:
+
+<blockquote>
+<pre>
+RewriteLog /anywhere/rewrite.log
+RewriteMap real-to-user txt:/anywhere/map.real-to-host
+RewriteRule ^/([^/]+)/~([^/]+)/(.*)$ /u/${real-to-user:$2|nobody}/$3.$1
+</pre>
+</blockquote>
+</blockquote>
+
+
+<!--%hypertext -->
+<hr>
+<!--/%hypertext -->
+
+<center>
+<a name="Additional">
+<h1>Additional Features</h1>
+</a>
+</center>
+
+<a name="EnvVar">
+<h2>Environment Variables</h2>
+</a>
+
+This module keeps track of two additional (non-standard) CGI/SSI environment
+variables named <tt>SCRIPT_URL</tt> and <tt>SCRIPT_URI</tt>. These contain
+the <em>logical</em> Web-view to the current resource, while the standard CGI/SSI
+variables <tt>SCRIPT_NAME</tt> and <tt>SCRIPT_FILENAME</tt> contain the
+<em>physical</em> System-view.
+
+<p>
+Notice: These variables hold the URI/URL <em>as they were initially
+requested</em>, i.e. in a state <em>before</em> any rewriting. This is
+important because the rewriting process is primarily used to rewrite logical
+URLs to physical pathnames.
+
+<p>
+<b>Example:</b>
+
+<blockquote>
+<pre>
+SCRIPT_NAME=/v/sw/free/lib/apache/global/u/rse/.www/index.html
+SCRIPT_FILENAME=/u/rse/.www/index.html
+SCRIPT_URL=/u/rse/
+SCRIPT_URI=http://en2.en.sdm.de/u/rse/
+</pre>
+</blockquote>
+
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+<!--/%hypertext -->
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_status.html b/usr.sbin/httpd/htdocs/manual/mod/mod_status.html
new file mode 100644
index 00000000000..f88c38c00b8
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_status.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html><head>
+<title>Apache module mod_status</title>
+</head><!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<h1 ALIGN="CENTER">Module mod_status</h1>
+
+The Status Module is only available in Apache 1.1 and later.<p>
+
+<h2>Function</h2>
+
+The Status module allows a server administrator to find out how well
+their server is performing. A HTML page is presented that gives
+the current server statistics in an easily readable form. If required
+this page can be made to automatically refresh (given a compatible
+browser). Another page gives a simple machine-readable list of the current
+server state.
+<p>
+The details given are:
+<ul>
+<li>The number of children serving requests
+<li>The number of idle children
+<li>The status of each child, the number of requests that child has
+performed and the total number of bytes served by the child (*)
+<li>A total number of accesses and byte count served (*)
+<li>The time the server was started/restarted and the
+time it has been running for
+<li>Averages giving the number of requests per second,
+the number of bytes served per second and the average number
+of bytes per request (*)
+<li>The current percentage CPU used by each child and in total by
+Apache (*)
+<li>The current hosts and requests being processed (*)
+</ul>
+
+A compile-time option must be used to display the details marked "(*)" as
+the instrumentation required for obtaining these statistics does not
+exist within standard Apache.
+
+<h2>Enabling Status Support</h2>
+
+To enable status reports only for browsers from the foo.com
+domain add this code to your <code>access.conf</code> configuration file
+<pre>
+ &lt;Location /server-status&gt;
+ SetHandler server-status
+
+ order deny,allow
+ deny from all
+ allow from .foo.com
+ &lt;/Location&gt;
+</pre>
+<p>
+You can now access server statistics by using a Web browser to access the
+page <code>http://your.server.name/server-status</code>
+<p>
+Note that mod_status will only work when you are running Apache in
+<A HREF="core.html#servertype">standalone</A> mode and not
+<A HREF="core.html#servertype">inetd</A> mode.
+
+<h3>Automatic Updates</h3>
+You can get the status page to update itself automatically if you have
+a browser that supports "refresh". Access the page
+<code>http://your.server.name/server-status?refresh=N</code> to refresh the page
+every N seconds.
+<h3>Machine Readable Status File</h3>
+A machine-readable version of the status file is available by accessing the
+page <code>http://your.server.name/server-status?auto</code>. This is useful
+when automatically run, see the Perl program in the <code>/support</code>
+directory of Apache, <code>log_server_status</code>.
+
+<h2>Full Instrumentation</h2>
+
+To obtain full statistics you must compile Apache with a special
+directive. On some machines there may be a small performance loss
+if you do this. Try full statistics and see if you notice any
+difference. If you do please contact <a href="mailto:mark@ukweb.com">
+mark@ukweb.com</a> and tell me your configuration.
+
+<p>
+
+Do this by adding the following to the AUX_CFLAGS line in the
+"Configuration" file and then recompiling as usual.
+<pre>
+ AUX_CFLAGS= (something) -DSTATUS
+</pre>
+
+<BLOCKQUOTE>
+ <STRONG>
+ It should be noted that if <SAMP>mod_status</SAMP> is compiled into
+ the server, its handler capability is available in <EM>all</EM>
+ configuration files, including <EM>per</EM>-directory files
+ (<EM>e.g.</EM>, <SAMP>.htaccess</SAMP>). This may have
+ security-related ramifications for your site.
+ </STRONG>
+</BLOCKQUOTE>
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html
new file mode 100644
index 00000000000..946f8da6db2
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_userdir</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_userdir</h1>
+
+This module is contained in the <code>mod_userdir.c</code> file, and
+is compiled in by default. It provides for user-specific directories.
+
+
+<ul>
+<li><A HREF="#userdir">UserDir</A>
+</ul>
+<hr>
+
+
+<h2><A name="userdir">UserDir</A></h2>
+<!--%plaintext &lt;?INDEX {\tt UserDir} directive&gt; -->
+<strong>Syntax:</strong> UserDir <em>directory/filename</em><br>
+<strong>Default:</strong> <code>UserDir public_html</code><br>
+<Strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> Base<br>
+<strong>Module:</strong> mod_userdir<br>
+<strong>Compatibility:</strong> All forms except the <code>UserDir
+public_html</code> form are only available in Apache 1.1 or above.<p>
+
+The UserDir directive sets the real directory in a user's home directory
+to use when a request for a document for a user is received.
+<em>Directory</em> is either <code>disabled</code>, to disable this feature,
+ or the name of a directory, following one of the following
+patterns. If not disabled, then a request for
+<code>http://www.foo.com/~bob/one/two.html</code> will be translated to:
+<pre>
+UserDir public_html -&gt; ~bob/public_html/one/two.html
+UserDir /usr/web -&gt; /usr/web/bob/one/two.html
+UserDir /home/*/www -&gt; /home/bob/www/one/two.html
+</pre>
+The following directives will send redirects to the client:
+<pre>
+UserDir http://www.foo.com/users -&gt; http//www.foo.com/users/bob/one/two.html
+UserDir http://www.foo.com/*/usr -&gt; http://www.foo.com/bob/usr/one/two.html
+UserDir http://www.foo.com/~*/ -&gt; http://www.foo.com/~bob/one/two.html
+</pre>
+
+<P>
+<STRONG>
+Be careful when using this directive; for instance, <SAMP>&quot;UserDir
+./&quot;</SAMP> would map <SAMP>&quot;/~root&quot;</SAMP> to
+<SAMP>&quot;/&quot;</SAMP> - which is probably undesirable. See also
+the
+<A
+ HREF="core.html#directory"
+>&lt;Directory&gt;</A>
+directive and the
+<A
+ HREF="../misc/security_tips.html"
+>Security Tips</A>
+page for more information.
+</STRONG>
+</P>
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_usertrack.html b/usr.sbin/httpd/htdocs/manual/mod/mod_usertrack.html
new file mode 100644
index 00000000000..5dc90165e3f
--- /dev/null
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_usertrack.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+<TITLE>Apache module mod_usertrack</TITLE>
+</HEAD>
+
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+<BODY
+ BGCOLOR="#FFFFFF"
+ TEXT="#000000"
+ LINK="#0000FF"
+ VLINK="#000080"
+ ALINK="#FF0000"
+>
+<DIV ALIGN="CENTER">
+ <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
+ <H3>
+ Apache HTTP Server Version 1.2
+ </H3>
+</DIV>
+
+<H1 ALIGN="CENTER">Module mod_usertrack</h1>
+
+Previous releases of Apache have included a module which generates a
+'clickstream' log of user activity on a site using cookies. This was
+called the "cookies" module, mod_cookies. In Apache 1.2 and later this
+module has been renamed the "user tracking" module,
+mod_usertrack. This module has been simplified and new directives
+added.
+
+<hr>
+
+<h2>Logging</h2>
+
+Previously, the cookies module (now the user tracking module) did its
+own logging, using the <tt>CookieLog</tt> directive. In this release,
+this module does no logging at all. Instead, a configurable log
+format file should be used to log user click-streams. This is possible
+because the logging module now allows <a
+href="../multilogs.html">multiple log files</a>. The cookie itself is
+logged by using the text <tt>%{cookie}n </tt>
+
+in the log file format. For example:
+<pre>
+CustomLog logs/clickstream "%{cookie}n %r %t"
+</pre>
+
+For backward compatibility the configurable log module implements the
+old <tt>CookieLog</tt> directive, but this should be upgraded to the
+above <tt>CustomLog</tt> directive.
+
+<h2>Directives</h2>
+
+<ul>
+<li><a href="#cookieexpires">CookieExpires</a>
+<li><a href="#cookietracking">CookieTracking</a>
+</ul>
+
+<hr>
+
+<h2><a name="cookieexpires">CookieExpires</A></h2>
+<strong>Syntax:</strong> CookieExpires <em>expiry-period</em><br>
+<strong>Context:</strong> server config, virtual host<br>
+<strong>Status:</strong> optional<br>
+<strong>Module:</strong> mod_usertrack<p>
+
+When used, this directive sets an expiry time on the cookie generated
+by the usertrack module. The <i>expiry-period</i> can be given either
+as a number of seconds, or in the format such as "2 weeks 3 days 7
+hours". Valid denominations are: years, months, weeks, hours, minutes
+and seconds.
+
+<p>If this directive is not used, cookies last only for the current
+browser session.</p>
+
+<h2><a name="cookietracking">CookieTracking</A></h2>
+<strong>Syntax:</strong> CookieTracking <em>on | off</em><br>
+<strong>Context:</strong> server config, virtual host, directory,
+.htaccess<br>
+<strong>Override:</strong> FileInfo<br>
+<strong>Status:</strong> optional<br>
+<strong>Module:</strong> mod_usertrack<p>
+
+When the user track module is compiled in, and "CookieTracking on" is
+set, Apache will start sending a user-tracking cookie for all new
+requests. This directive can be used to turn this behavior on or off
+on a per-server or per-directory basis. By default, compiling
+mod_usertrack will not activate cookies.
+
+
+<HR>
+<H3 ALIGN="CENTER">
+ Apache HTTP Server Version 1.2
+</H3>
+
+<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
+<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+
+</BODY>
+</HTML>