summaryrefslogtreecommitdiff
path: root/docs/manual/mod
diff options
context:
space:
mode:
authorRich Bowen <rbowen@apache.org>2001-09-22 19:39:26 +0000
committerRich Bowen <rbowen@apache.org>2001-09-22 19:39:26 +0000
commitf88b50dec40878abeccce0e1b9cfc6780a4b1465 (patch)
tree84e6a7b926e102d9f322b96351f2346be29c2db5 /docs/manual/mod
parent651abc3a73acadb00f390b58ed4e5b7ebb14d2b0 (diff)
downloadhttpd-f88b50dec40878abeccce0e1b9cfc6780a4b1465.tar.gz
w3c tidy to convert to xhtml
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91116 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod')
-rw-r--r--docs/manual/mod/directives.html6
-rw-r--r--docs/manual/mod/footer.html23
-rw-r--r--docs/manual/mod/header.html25
-rw-r--r--docs/manual/mod/index-bytype.html470
-rw-r--r--docs/manual/mod/index.html380
-rw-r--r--docs/manual/mod/mod_TEMPLATE.html2
-rw-r--r--docs/manual/mod/mod_access.html670
-rw-r--r--docs/manual/mod/mod_actions.html245
-rw-r--r--docs/manual/mod/mod_alias.html775
-rw-r--r--docs/manual/mod/mod_auth.html465
-rw-r--r--docs/manual/mod/mod_auth_anon.html597
-rw-r--r--docs/manual/mod/mod_auth_db.html483
-rw-r--r--docs/manual/mod/mod_auth_dbm.html466
-rw-r--r--docs/manual/mod/mod_auth_digest.html763
-rw-r--r--docs/manual/mod/mod_autoindex.html1874
-rw-r--r--docs/manual/mod/mod_cern_meta.html305
-rw-r--r--docs/manual/mod/mod_cgi.html456
-rw-r--r--docs/manual/mod/mod_cgid.html187
-rw-r--r--docs/manual/mod/mod_charset_lite.html497
-rw-r--r--docs/manual/mod/mod_dav.html467
-rw-r--r--docs/manual/mod/mod_dir.html232
-rw-r--r--docs/manual/mod/mod_env.html274
-rw-r--r--docs/manual/mod/mod_example.html356
-rw-r--r--docs/manual/mod/mod_expires.html598
-rw-r--r--docs/manual/mod/mod_ext_filter.html462
-rw-r--r--docs/manual/mod/mod_file_cache.html479
-rw-r--r--docs/manual/mod/mod_headers.html579
-rw-r--r--docs/manual/mod/mod_imap.html708
-rw-r--r--docs/manual/mod/mod_include.html1000
-rw-r--r--docs/manual/mod/mod_info.html220
-rw-r--r--docs/manual/mod/mod_isapi.html735
-rw-r--r--docs/manual/mod/mod_log_config.html655
-rw-r--r--docs/manual/mod/mod_mime_magic.html456
-rw-r--r--docs/manual/mod/mod_mmap_static.html270
-rw-r--r--docs/manual/mod/mod_negotiation.html449
-rw-r--r--docs/manual/mod/mod_proxy.html43
-rw-r--r--docs/manual/mod/mod_rewrite.html3760
-rw-r--r--docs/manual/mod/mod_setenvif.html730
-rw-r--r--docs/manual/mod/mod_so.html371
-rw-r--r--docs/manual/mod/mod_speling.html261
-rw-r--r--docs/manual/mod/mod_status.html316
-rw-r--r--docs/manual/mod/mod_suexec.html150
-rw-r--r--docs/manual/mod/mod_unique_id.html409
-rw-r--r--docs/manual/mod/mod_userdir.html247
-rw-r--r--docs/manual/mod/mod_usertrack.html471
-rw-r--r--docs/manual/mod/mod_vhost_alias.html685
-rw-r--r--docs/manual/mod/module-dict.html267
-rw-r--r--docs/manual/mod/module-dict.html.en267
-rw-r--r--docs/manual/mod/mpm_common.html1459
-rw-r--r--docs/manual/mod/mpm_winnt.html120
-rw-r--r--docs/manual/mod/perchild.html340
-rw-r--r--docs/manual/mod/prefork.html458
-rw-r--r--docs/manual/mod/threaded.html226
53 files changed, 13343 insertions, 13866 deletions
diff --git a/docs/manual/mod/directives.html b/docs/manual/mod/directives.html
index f9d49da12f..81e719ecb9 100644
--- a/docs/manual/mod/directives.html
+++ b/docs/manual/mod/directives.html
@@ -57,7 +57,8 @@
<li><a
href="mod_autoindex.html#addiconbytype">AddIconByType</a></li>
- <li><a href="mod_mime.html#addinputfilter">AddInputFilter</a></li>
+ <li><a
+ href="mod_mime.html#addinputfilter">AddInputFilter</a></li>
<li><a href="mod_mime.html#addlanguage">AddLanguage</a></li>
@@ -66,7 +67,8 @@
<li><a
href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li>
- <li><a href="mod_mime.html#addoutputfilter">AddOutputFilter</a></li>
+ <li><a
+ href="mod_mime.html#addoutputfilter">AddOutputFilter</a></li>
<li><a href="mod_mime.html#addtype">AddType</a></li>
diff --git a/docs/manual/mod/footer.html b/docs/manual/mod/footer.html
index 4a0991e6fa..edcc022ccc 100644
--- a/docs/manual/mod/footer.html
+++ b/docs/manual/mod/footer.html
@@ -1,8 +1,19 @@
-<HR>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<H3 ALIGN="CENTER">
- Apache HTTP Server Version 2.0
-</H3>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title></title>
+ </head>
+
+ <body>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 2.0</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+ </body>
+</html>
-<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
-<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
diff --git a/docs/manual/mod/header.html b/docs/manual/mod/header.html
index 9bc11593a3..6c4764044e 100644
--- a/docs/manual/mod/header.html
+++ b/docs/manual/mod/header.html
@@ -1,6 +1,19 @@
-<DIV ALIGN="CENTER">
- <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
- <H3>
- Apache HTTP Server Version 2.0
- </H3>
-</DIV>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title></title>
+ </head>
+
+ <body>
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 2.0</h3>
+ </div>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/index-bytype.html b/docs/manual/mod/index-bytype.html
index 986580650c..718252ae8f 100644
--- a/docs/manual/mod/index-bytype.html
+++ b/docs/manual/mod/index-bytype.html
@@ -1,190 +1,280 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<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 list of modules <A
-HREF="index.html">sorted alphabetically</A> and the complete
-alphabetical list of <A HREF="directives.html" >all Apache
-directives</A>.
-</P>
-
-<H2>Core and Mutli-Processing Modules</H2>
-
-<DL>
-<DT><A HREF="core.html">Core</A>
-<DD>Core Apache features.
-<DT><A HREF="threaded.html">threaded</A>
-<DD>Multi-Processing Module with Threading via Pthreads; Variable number
-of processes, constant number of threads/child
-<DT><a href="mpm_winnt.html">mpm_winnt</a>
-<DD>Multi-Processing Module with a single control process and a single
-server process with multiple threads for Windows NT
-<DT><a href="perchild.html">perchild</a>
-<DD>Multi-Processing Module with the ability to server different
-virtual hosts under different userids.
-<DT><a href="prefork.html">prefork</a>
-<DD>Non-threaded preforking processes model similar to Apache 1.3
-</DL>
-
-<H2>Environment Creation</H2>
-
-<DL>
-<DT><A HREF="mod_env.html">mod_env</A>
-<DD>Passing of environments to CGI scripts
-<DT><A HREF="mod_setenvif.html">mod_setenvif</A>
-<DD>Set environment variables based on client information
-<DT><A HREF="mod_unique_id.html">mod_unique_id</A>
-<DD>Generate unique request identifier for every request
-</DL>
-
-<H2>Content Type Decisions</H2>
-
-<DL>
-<DT><A HREF="mod_mime.html">mod_mime</A>
-<DD>Determining document types using file extensions.
-<DT><A HREF="mod_mime_magic.html">mod_mime_magic</A>
-<DD>Determining document types using "magic numbers".
-<DT><A HREF="mod_negotiation.html">mod_negotiation</A>
-<DD>Content negotiation.
-<DT><A HREF="mod_charset_lite.html">mod_charset_lite</A>
-<DD>Configuring character set translation.
-</DL>
-
-<H2>URL Mapping</H2>
-
-<DL>
-<DT><A HREF="mod_alias.html">mod_alias</A>
-<DD>Mapping different parts of the host filesystem in the document tree,
- and URL redirection.
-<DT><A HREF="mod_rewrite.html">mod_rewrite</A>
-<DD>Powerful URI-to-filename mapping using regular expressions
-<DT><A HREF="mod_userdir.html">mod_userdir</A>
-<DD>User home directories.
-<DT><A HREF="mod_speling.html">mod_speling</A>
-<DD>Automatically correct minor typos in URLs
-<DT><A HREF="mod_vhost_alias.html">mod_vhost_alias</A>
-<DD>Support for dynamically configured mass virtual hosting
-</DL>
-
-<H2>Directory Handling</H2>
-
-<DL>
-<DT><A HREF="mod_dir.html">mod_dir</A>
-<DD>Basic directory handling.
-<DT><A HREF="mod_autoindex.html">mod_autoindex</A>
-<DD>Automatic directory listings.
-</DL>
-
-<H2>Access Control</H2>
-
-<DL>
-<DT><A HREF="mod_access.html">mod_access</A>
-<DD>Access control based on client hostname or IP address.
-<DT><A HREF="mod_auth.html">mod_auth</A>
-<DD>User authentication using text files.
-<DT><A HREF="mod_auth_dbm.html">mod_auth_dbm</A>
-<DD>User authentication using DBM files.
-<DT><A HREF="mod_auth_db.html">mod_auth_db</A>
-<DD>User authentication using Berkeley DB files.
-<DT><A HREF="mod_auth_anon.html">mod_auth_anon</A>
-<DD>Anonymous user access to authenticated areas.
-<DT><A HREF="mod_auth_digest.html">mod_auth_digest</A>
-<DD>MD5 authentication
-<DT><A HREF="mod_auth_ldap.html">mod_auth_ldap</A>
-<DD>User authentication using LDAP.
-
-</DL>
-
-<H2>HTTP Response</H2>
-
-<DL>
-<DT><A HREF="mod_headers.html">mod_headers</A>
-<DD>Add arbitrary HTTP headers to resources
-<DT><A HREF="mod_cern_meta.html">mod_cern_meta</A>
-<DD>Support for HTTP header metafiles.
-<DT><A HREF="mod_expires.html">mod_expires</A>
-<DD>Apply Expires: headers to resources
-<DT><A HREF="mod_asis.html">mod_asis</A>
-<DD>Sending files which contain their own HTTP headers.
-</DL>
-
-<H2>Dynamic Content</H2>
-
-<DL>
-<DT><A HREF="mod_include.html">mod_include</A>
-<DD>Server-parsed documents.
-<DT><A HREF="mod_cgi.html">mod_cgi</A>
-<DD>Invoking CGI scripts.
-<DT><A HREF="mod_cgid.html">mod_cgid</A>
-<DD>Invoking CGI scripts using an external daemon.
-<DT><A HREF="mod_actions.html">mod_actions</A>
-<DD>Executing CGI scripts based on media type or request method.
-<DT><A HREF="mod_isapi.html">mod_isapi</A>
-<DD>Windows ISAPI Extension support
-<DT><A HREF="mod_ext_filter.html">mod_ext_filter</A>
-<DD>Filtering content with external programs.
-<DT><A HREF="mod_suexec.html">mod_suexec</A>
-<DD>Run CGI requests as a specified user and group.
-</DL>
-
-<H2>Internal Content Handlers</H2>
-
-<DL>
-<DT><A HREF="mod_status.html">mod_status</A>
-<DD>Server status display
-<DT><A HREF="mod_info.html">mod_info</A>
-<DD>Server configuration information
-</DL>
-
-<H2>Logging</H2>
-
-<DL>
-<DT><A HREF="mod_log_config.html">mod_log_config</A>
-<DD>User-configurable logging replacement for mod_log_common.
-<DT><A HREF="mod_usertrack.html">mod_usertrack</A>
-<DD>User tracking using Cookies
-</DL>
-
-<H2>Miscellaneous</H2>
-
-<DL>
-<DT><A HREF="mod_imap.html">mod_imap</A>
-<DD>The imagemap file handler.
-<DT><A HREF="mod_proxy.html">mod_proxy</A>
-<DD>Caching proxy abilities
-<DT><A HREF="mod_so.html">mod_so</A>
-<DD>Support for loading modules at runtime
-<DT><A HREF="mod_file_cache.html">mod_file_cache</A>
-<DD>Caching files in memory for faster serving.
-<DT><A HREF="mod_dav.html">mod_dav</A>
-<DD>Class 1,2 <A HREF="http://www.webdav.org">WebDAV</A> HTTP extensions
-<DT><A HREF="mod_ldap.html">mod_ldap</A>
-<DD>LDAP connection pool and shared memory cache.
-</DL>
-
-
-<H2>Development</H2>
-
-<DL>
-<DT><A HREF="mod_example.html">mod_example</A>
-<DD>Demonstrates Apache API
-</DL>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <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 list of modules <a
+ href="index.html">sorted alphabetically</a> and the complete
+ alphabetical list of <a href="directives.html">all Apache
+ directives</a>.</p>
+
+ <h2>Core and Mutli-Processing Modules</h2>
+
+ <dl>
+ <dt><a href="core.html">Core</a></dt>
+
+ <dd>Core Apache features.</dd>
+
+ <dt><a href="threaded.html">threaded</a></dt>
+
+ <dd>Multi-Processing Module with Threading via Pthreads;
+ Variable number of processes, constant number of
+ threads/child</dd>
+
+ <dt><a href="mpm_winnt.html">mpm_winnt</a></dt>
+
+ <dd>Multi-Processing Module with a single control process and
+ a single server process with multiple threads for Windows
+ NT</dd>
+
+ <dt><a href="perchild.html">perchild</a></dt>
+
+ <dd>Multi-Processing Module with the ability to server
+ different virtual hosts under different userids.</dd>
+
+ <dt><a href="prefork.html">prefork</a></dt>
+
+ <dd>Non-threaded preforking processes model similar to Apache
+ 1.3</dd>
+ </dl>
+
+ <h2>Environment Creation</h2>
+
+ <dl>
+ <dt><a href="mod_env.html">mod_env</a></dt>
+
+ <dd>Passing of environments to CGI scripts</dd>
+
+ <dt><a href="mod_setenvif.html">mod_setenvif</a></dt>
+
+ <dd>Set environment variables based on client
+ information</dd>
+
+ <dt><a href="mod_unique_id.html">mod_unique_id</a></dt>
+
+ <dd>Generate unique request identifier for every request</dd>
+ </dl>
+
+ <h2>Content Type Decisions</h2>
+
+ <dl>
+ <dt><a href="mod_mime.html">mod_mime</a></dt>
+
+ <dd>Determining document types using file extensions.</dd>
+
+ <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt>
+
+ <dd>Determining document types using "magic numbers".</dd>
+
+ <dt><a href="mod_negotiation.html">mod_negotiation</a></dt>
+
+ <dd>Content negotiation.</dd>
+
+ <dt><a href="mod_charset_lite.html">mod_charset_lite</a></dt>
+
+ <dd>Configuring character set translation.</dd>
+ </dl>
+
+ <h2>URL Mapping</h2>
+
+ <dl>
+ <dt><a href="mod_alias.html">mod_alias</a></dt>
+
+ <dd>Mapping different parts of the host filesystem in the
+ document tree, and URL redirection.</dd>
+
+ <dt><a href="mod_rewrite.html">mod_rewrite</a></dt>
+
+ <dd>Powerful URI-to-filename mapping using regular
+ expressions</dd>
+
+ <dt><a href="mod_userdir.html">mod_userdir</a></dt>
+
+ <dd>User home directories.</dd>
+
+ <dt><a href="mod_speling.html">mod_speling</a></dt>
+
+ <dd>Automatically correct minor typos in URLs</dd>
+
+ <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a></dt>
+
+ <dd>Support for dynamically configured mass virtual
+ hosting</dd>
+ </dl>
+
+ <h2>Directory Handling</h2>
+
+ <dl>
+ <dt><a href="mod_dir.html">mod_dir</a></dt>
+
+ <dd>Basic directory handling.</dd>
+
+ <dt><a href="mod_autoindex.html">mod_autoindex</a></dt>
+
+ <dd>Automatic directory listings.</dd>
+ </dl>
+
+ <h2>Access Control</h2>
+
+ <dl>
+ <dt><a href="mod_access.html">mod_access</a></dt>
+
+ <dd>Access control based on client hostname or IP
+ address.</dd>
+
+ <dt><a href="mod_auth.html">mod_auth</a></dt>
+
+ <dd>User authentication using text files.</dd>
+
+ <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt>
+
+ <dd>User authentication using DBM files.</dd>
+
+ <dt><a href="mod_auth_db.html">mod_auth_db</a></dt>
+
+ <dd>User authentication using Berkeley DB files.</dd>
+
+ <dt><a href="mod_auth_anon.html">mod_auth_anon</a></dt>
+
+ <dd>Anonymous user access to authenticated areas.</dd>
+
+ <dt><a href="mod_auth_digest.html">mod_auth_digest</a></dt>
+
+ <dd>MD5 authentication</dd>
+
+ <dt><a href="mod_auth_ldap.html">mod_auth_ldap</a></dt>
+
+ <dd>User authentication using LDAP.</dd>
+ </dl>
+
+ <h2>HTTP Response</h2>
+
+ <dl>
+ <dt><a href="mod_headers.html">mod_headers</a></dt>
+
+ <dd>Add arbitrary HTTP headers to resources</dd>
+
+ <dt><a href="mod_cern_meta.html">mod_cern_meta</a></dt>
+
+ <dd>Support for HTTP header metafiles.</dd>
+
+ <dt><a href="mod_expires.html">mod_expires</a></dt>
+
+ <dd>Apply Expires: headers to resources</dd>
+
+ <dt><a href="mod_asis.html">mod_asis</a></dt>
+
+ <dd>Sending files which contain their own HTTP headers.</dd>
+ </dl>
+
+ <h2>Dynamic Content</h2>
+
+ <dl>
+ <dt><a href="mod_include.html">mod_include</a></dt>
+
+ <dd>Server-parsed documents.</dd>
+
+ <dt><a href="mod_cgi.html">mod_cgi</a></dt>
+
+ <dd>Invoking CGI scripts.</dd>
+
+ <dt><a href="mod_cgid.html">mod_cgid</a></dt>
+
+ <dd>Invoking CGI scripts using an external daemon.</dd>
+
+ <dt><a href="mod_actions.html">mod_actions</a></dt>
+
+ <dd>Executing CGI scripts based on media type or request
+ method.</dd>
+
+ <dt><a href="mod_isapi.html">mod_isapi</a></dt>
+
+ <dd>Windows ISAPI Extension support</dd>
+
+ <dt><a href="mod_ext_filter.html">mod_ext_filter</a></dt>
+
+ <dd>Filtering content with external programs.</dd>
+
+ <dt><a href="mod_suexec.html">mod_suexec</a></dt>
+
+ <dd>Run CGI requests as a specified user and group.</dd>
+ </dl>
+
+ <h2>Internal Content Handlers</h2>
+
+ <dl>
+ <dt><a href="mod_status.html">mod_status</a></dt>
+
+ <dd>Server status display</dd>
+
+ <dt><a href="mod_info.html">mod_info</a></dt>
+
+ <dd>Server configuration information</dd>
+ </dl>
+
+ <h2>Logging</h2>
+
+ <dl>
+ <dt><a href="mod_log_config.html">mod_log_config</a></dt>
+
+ <dd>User-configurable logging replacement for
+ mod_log_common.</dd>
+
+ <dt><a href="mod_usertrack.html">mod_usertrack</a></dt>
+
+ <dd>User tracking using Cookies</dd>
+ </dl>
+
+ <h2>Miscellaneous</h2>
+
+ <dl>
+ <dt><a href="mod_imap.html">mod_imap</a></dt>
+
+ <dd>The imagemap file handler.</dd>
+
+ <dt><a href="mod_proxy.html">mod_proxy</a></dt>
+
+ <dd>Caching proxy abilities</dd>
+
+ <dt><a href="mod_so.html">mod_so</a></dt>
+
+ <dd>Support for loading modules at runtime</dd>
+
+ <dt><a href="mod_file_cache.html">mod_file_cache</a></dt>
+
+ <dd>Caching files in memory for faster serving.</dd>
+
+ <dt><a href="mod_dav.html">mod_dav</a></dt>
+
+ <dd>Class 1,2 <a href="http://www.webdav.org">WebDAV</a> HTTP
+ extensions</dd>
+
+ <dt><a href="mod_ldap.html">mod_ldap</a></dt>
+
+ <dd>LDAP connection pool and shared memory cache.</dd>
+ </dl>
+
+ <h2>Development</h2>
+
+ <dl>
+ <dt><a href="mod_example.html">mod_example</a></dt>
+
+ <dd>Demonstrates Apache API</dd>
+ </dl>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/index.html b/docs/manual/mod/index.html
index bf6b81eece..e493a49eaf 100644
--- a/docs/manual/mod/index.html
+++ b/docs/manual/mod/index.html
@@ -1,139 +1,241 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<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 list of modules <A
-HREF="index-bytype.html">sorted by type</A> and the complete
-alphabetical list of <A HREF="directives.html">all Apache
-directives</A>.
-
-</P>
-
-<h2>Core Features and Multi-Processing Modules</h2>
-
-<DL>
-<DT><A HREF="core.html">Core</A>
-<DD>Core Apache features.
-<DT><A HREF="threaded.html">threaded</A>
-<DD>Multi-Processing Module with Threading via Pthreads; Variable number
-of processes, constant number of threads/child
-<DT><a href="mpm_winnt.html">mpm_winnt</a>
-<DD>Multi-Processing Module with a single control process and a single
-server process with multiple threads for Windows NT
-<DT><a href="perchild.html">perchild</a>
-<DD>Multi-Processing Module with the ability to server different
-virtual hosts under different userids.
-<DT><a href="prefork.html">prefork</a>
-<DD>Non-threaded preforking processes model similar to Apache 1.3
-</DL>
-
-<h2>Other Modules</h2>
-
-<DL>
-<DT><A HREF="mod_access.html">mod_access</A>
-<DD>Access control based on client hostname or IP address.
-<DT><A HREF="mod_actions.html">mod_actions</A>
-<DD>Executing CGI scripts based on media type or request method.
-<DT><A HREF="mod_alias.html">mod_alias</A>
-<DD>Mapping different parts of the host filesystem in the document tree,
- and URL redirection.
-<DT><A HREF="mod_asis.html">mod_asis</A>
-<DD>Sending files which contain their own HTTP headers.
-<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 access to authenticated areas.
-<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_digest.html">mod_auth_digest</A>
-<DD>MD5 authentication
-<DT><A HREF="mod_auth_ldap.html">mod_auth_ldap</A>
-<DD>User authentication using LDAP.
-<DT><A HREF="mod_autoindex.html">mod_autoindex</A>
-<DD>Automatic directory listings.
-<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_cgid.html">mod_cgid</A>
-<DD>Invoking CGI scripts using an external daemon.
-<DT><A HREF="mod_charset_lite.html">mod_charset_lite</A>
-<DD>Configuring character set translation.
-<DT><A HREF="mod_dav.html">mod_dav</A>
-<DD>Class 1,2 <A HREF="http://www.webdav.org">WebDAV</A> HTTP extensions
-<DT><A HREF="mod_dir.html">mod_dir</A>
-<DD>Basic directory handling.
-<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>
-<DD>Demonstrates Apache API
-<DT><A HREF="mod_expires.html">mod_expires</A>
-<DD>Apply Expires: headers to resources
-<DT><A HREF="mod_ext_filter.html">mod_ext_filter</A>
-<DD>Filtering output with external programs.
-<DT><A HREF="mod_file_cache.html">mod_file_cache</A>
-<DD>Caching files in memory for faster serving.
-<DT><A HREF="mod_headers.html">mod_headers</A>
-<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_isapi.html">mod_isapi</A>
-<DD>Windows ISAPI Extension support
-<DT><A HREF="mod_ldap.html">mod_ldap</A>
-<DD>LDAP connection pool and shared memory cache.
-<DT><A HREF="mod_log_config.html">mod_log_config</A>
-<DD>User-configurable logging replacement for mod_log_common.
-<DT><A HREF="mod_mime.html">mod_mime</A>
-<DD>Determining document types using file extensions.
-<DT><A HREF="mod_mime_magic.html">mod_mime_magic</A>
-<DD>Determining document types using "magic numbers".
-<DT><A HREF="mod_negotiation.html">mod_negotiation</A>
-<DD>Content negotiation.
-<DT><A HREF="mod_proxy.html">mod_proxy</A>
-<DD>Caching proxy abilities
-<DT><A HREF="mod_rewrite.html">mod_rewrite</A>
-<DD>Powerful URI-to-filename mapping using regular expressions
-<DT><A HREF="mod_setenvif.html">mod_setenvif</A>
-<DD>Set environment variables based on client information
-<DT><A HREF="mod_so.html">mod_so</A>
-<DD>Support for loading modules at runtime
-<DT><A HREF="mod_speling.html">mod_speling</A>
-<DD>Automatically correct minor typos in URLs
-<DT><A HREF="mod_status.html">mod_status</A>
-<DD>Server status display
-<DT><A HREF="mod_suexec.html">mod_suexec</A>
-<DD>Run CGI requests as a specified user and group.
-<DT><A HREF="mod_userdir.html">mod_userdir</A>
-<DD>User home directories.
-<DT><A HREF="mod_unique_id.html">mod_unique_id</A>
-<DD>Generate unique request identifier for every request
-<DT><A HREF="mod_usertrack.html">mod_usertrack</A>
-<DD>User tracking using Cookies (replacement for mod_cookies.c)
-<DT><A HREF="mod_vhost_alias.html">mod_vhost_alias</A>
-<DD>Support for dynamically configured mass virtual hosting
-</DL>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <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 list of modules <a
+ href="index-bytype.html">sorted by type</a> and the complete
+ alphabetical list of <a href="directives.html">all Apache
+ directives</a>.</p>
+
+ <h2>Core Features and Multi-Processing Modules</h2>
+
+ <dl>
+ <dt><a href="core.html">Core</a></dt>
+
+ <dd>Core Apache features.</dd>
+
+ <dt><a href="threaded.html">threaded</a></dt>
+
+ <dd>Multi-Processing Module with Threading via Pthreads;
+ Variable number of processes, constant number of
+ threads/child</dd>
+
+ <dt><a href="mpm_winnt.html">mpm_winnt</a></dt>
+
+ <dd>Multi-Processing Module with a single control process and
+ a single server process with multiple threads for Windows
+ NT</dd>
+
+ <dt><a href="perchild.html">perchild</a></dt>
+
+ <dd>Multi-Processing Module with the ability to server
+ different virtual hosts under different userids.</dd>
+
+ <dt><a href="prefork.html">prefork</a></dt>
+
+ <dd>Non-threaded preforking processes model similar to Apache
+ 1.3</dd>
+ </dl>
+
+ <h2>Other Modules</h2>
+
+ <dl>
+ <dt><a href="mod_access.html">mod_access</a></dt>
+
+ <dd>Access control based on client hostname or IP
+ address.</dd>
+
+ <dt><a href="mod_actions.html">mod_actions</a></dt>
+
+ <dd>Executing CGI scripts based on media type or request
+ method.</dd>
+
+ <dt><a href="mod_alias.html">mod_alias</a></dt>
+
+ <dd>Mapping different parts of the host filesystem in the
+ document tree, and URL redirection.</dd>
+
+ <dt><a href="mod_asis.html">mod_asis</a></dt>
+
+ <dd>Sending files which contain their own HTTP headers.</dd>
+
+ <dt><a href="mod_auth.html">mod_auth</a></dt>
+
+ <dd>User authentication using text files.</dd>
+
+ <dt><a href="mod_auth_anon.html">mod_auth_anon</a></dt>
+
+ <dd>Anonymous user access to authenticated areas.</dd>
+
+ <dt><a href="mod_auth_db.html">mod_auth_db</a></dt>
+
+ <dd>User authentication using Berkeley DB files.</dd>
+
+ <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt>
+
+ <dd>User authentication using DBM files.</dd>
+
+ <dt><a href="mod_auth_digest.html">mod_auth_digest</a></dt>
+
+ <dd>MD5 authentication</dd>
+
+ <dt><a href="mod_auth_ldap.html">mod_auth_ldap</a></dt>
+
+ <dd>User authentication using LDAP.</dd>
+
+ <dt><a href="mod_autoindex.html">mod_autoindex</a></dt>
+
+ <dd>Automatic directory listings.</dd>
+
+ <dt><a href="mod_cern_meta.html">mod_cern_meta</a></dt>
+
+ <dd>Support for HTTP header metafiles.</dd>
+
+ <dt><a href="mod_cgi.html">mod_cgi</a></dt>
+
+ <dd>Invoking CGI scripts.</dd>
+
+ <dt><a href="mod_cgid.html">mod_cgid</a></dt>
+
+ <dd>Invoking CGI scripts using an external daemon.</dd>
+
+ <dt><a href="mod_charset_lite.html">mod_charset_lite</a></dt>
+
+ <dd>Configuring character set translation.</dd>
+
+ <dt><a href="mod_dav.html">mod_dav</a></dt>
+
+ <dd>Class 1,2 <a href="http://www.webdav.org">WebDAV</a> HTTP
+ extensions</dd>
+
+ <dt><a href="mod_dir.html">mod_dir</a></dt>
+
+ <dd>Basic directory handling.</dd>
+
+ <dt><a href="mod_env.html">mod_env</a></dt>
+
+ <dd>Passing of environments to CGI scripts</dd>
+
+ <dt><a href="mod_example.html">mod_example</a></dt>
+
+ <dd>Demonstrates Apache API</dd>
+
+ <dt><a href="mod_expires.html">mod_expires</a></dt>
+
+ <dd>Apply Expires: headers to resources</dd>
+
+ <dt><a href="mod_ext_filter.html">mod_ext_filter</a></dt>
+
+ <dd>Filtering output with external programs.</dd>
+
+ <dt><a href="mod_file_cache.html">mod_file_cache</a></dt>
+
+ <dd>Caching files in memory for faster serving.</dd>
+
+ <dt><a href="mod_headers.html">mod_headers</a></dt>
+
+ <dd>Add arbitrary HTTP headers to resources</dd>
+
+ <dt><a href="mod_imap.html">mod_imap</a></dt>
+
+ <dd>The imagemap file handler.</dd>
+
+ <dt><a href="mod_include.html">mod_include</a></dt>
+
+ <dd>Server-parsed documents.</dd>
+
+ <dt><a href="mod_info.html">mod_info</a></dt>
+
+ <dd>Server configuration information</dd>
+
+ <dt><a href="mod_isapi.html">mod_isapi</a></dt>
+
+ <dd>Windows ISAPI Extension support</dd>
+
+ <dt><a href="mod_ldap.html">mod_ldap</a></dt>
+
+ <dd>LDAP connection pool and shared memory cache.</dd>
+
+ <dt><a href="mod_log_config.html">mod_log_config</a></dt>
+
+ <dd>User-configurable logging replacement for
+ mod_log_common.</dd>
+
+ <dt><a href="mod_mime.html">mod_mime</a></dt>
+
+ <dd>Determining document types using file extensions.</dd>
+
+ <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt>
+
+ <dd>Determining document types using "magic numbers".</dd>
+
+ <dt><a href="mod_negotiation.html">mod_negotiation</a></dt>
+
+ <dd>Content negotiation.</dd>
+
+ <dt><a href="mod_proxy.html">mod_proxy</a></dt>
+
+ <dd>Caching proxy abilities</dd>
+
+ <dt><a href="mod_rewrite.html">mod_rewrite</a></dt>
+
+ <dd>Powerful URI-to-filename mapping using regular
+ expressions</dd>
+
+ <dt><a href="mod_setenvif.html">mod_setenvif</a></dt>
+
+ <dd>Set environment variables based on client
+ information</dd>
+
+ <dt><a href="mod_so.html">mod_so</a></dt>
+
+ <dd>Support for loading modules at runtime</dd>
+
+ <dt><a href="mod_speling.html">mod_speling</a></dt>
+
+ <dd>Automatically correct minor typos in URLs</dd>
+
+ <dt><a href="mod_status.html">mod_status</a></dt>
+
+ <dd>Server status display</dd>
+
+ <dt><a href="mod_suexec.html">mod_suexec</a></dt>
+
+ <dd>Run CGI requests as a specified user and group.</dd>
+
+ <dt><a href="mod_userdir.html">mod_userdir</a></dt>
+
+ <dd>User home directories.</dd>
+
+ <dt><a href="mod_unique_id.html">mod_unique_id</a></dt>
+
+ <dd>Generate unique request identifier for every request</dd>
+
+ <dt><a href="mod_usertrack.html">mod_usertrack</a></dt>
+
+ <dd>User tracking using Cookies (replacement for
+ mod_cookies.c)</dd>
+
+ <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a></dt>
+
+ <dd>Support for dynamically configured mass virtual
+ hosting</dd>
+ </dl>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_TEMPLATE.html b/docs/manual/mod/mod_TEMPLATE.html
index 0bfe8613ed..675c207a14 100644
--- a/docs/manual/mod/mod_TEMPLATE.html
+++ b/docs/manual/mod/mod_TEMPLATE.html
@@ -115,8 +115,6 @@
rel="Help"><strong>Module:</strong></a> mod_foo
<p><em>Directive3</em> is described here, and so on.
-
-
<!--#include virtual="footer.html" -->
</p>
</body>
diff --git a/docs/manual/mod/mod_access.html b/docs/manual/mod/mod_access.html
index f6cef3b3b8..938ab6ece0 100644
--- a/docs/manual/mod/mod_access.html
+++ b/docs/manual/mod/mod_access.html
@@ -1,346 +1,336 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_access</H1>
-<P>
-This module provides access control based on client hostname, IP
-address, or other characteristics of the client request.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_access.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> access_module
-</P>
-
-<h2>Summary</h2>
-
-<p>The directives provided by mod_access are used in <CODE><A
-HREF="core.html#directory">&lt;Directory&gt;</A>, <A
-HREF="core.html#files">&lt;Files&gt;</A>,</code> and <code> <A
-HREF="core.html#location">&lt;Location&gt;</A></code> sections as
-well as <code><a
-href="core.html#accessfilename">.htaccess</a></code> files
-to control access to particular parts of the server. Access
-can be controlled based on the client hostname, IP address,
-or other characteristics of the client request, as captured
-in <a href="../env.html">environment variables</a>. The
-<code>Allow</code> and <code>Deny</code> directives are used
-to specify which clients are or are not allowed access to the
-server, while the <code>Order</code> directive sets the
-default access state, and configures how the <code>Allow</code>
-and <code>Deny</code> directives interact with each other.</p>
-
-<p>Both host-based access restrictions and password-based
-authentication may be implemented simultaneously. In
-that case, the <a href="core.html#satsify">Satisfy</a> directive
-is used to determine how the two sets of restrictions
-interact.</p>
-
-<p>In general, access restriction directives apply to all access
-methods (<code>GET</code>, <code>PUT</code>, <code>POST</code>, etc).
-This is the desired behavior in most cases. However, it is possible
-to restrict some methods, while leaving other methods unrestricted, by
-enclosing the directives in a <a
-href="core.html#limit">&lt;Limit&gt;</a> section.</p>
-
-<H2>Directives</H2>
-
-<UL>
-<LI><A HREF="#allow">Allow</A>
-<LI><A HREF="#deny">Deny</A>
-<LI><A HREF="#order">Order</A>
-</UL>
-
-<P>See also <A HREF="core.html#satisfy">Satisfy</A>
- and <A HREF="core.html#require">Require</A>.
-
-<HR>
-
-
-<H2><A NAME="allow">Allow</a> <a name="allowfromenv">directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Allow} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Allow from
- all|<EM>host</em>|env=<em>env-variable</em>
- [<em>host</em>|env=<em>env-variable</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Limit<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_access
-</P>
-
-<P>
-The <code>Allow</code> directive affects which hosts can access an
-area of the server. Access can be controlled by hostname, IP Address,
-IP Address range, or by other characteristics of the client
-request captured in environment variables.</p>
-
-<p>The first argument to this directive is always <code>from</code>.
-The subsequent arguments can take three different forms. If
-<code>Allow from all</code> is specified, then all hosts are allowed
-access, subject to the configuration of the <code>Deny</code> and
-<code>Order</code> directives as discussed below. To allow only
-particular hosts or groups of hosts to access the server, the
-<em>host</em> can be specified in any of the following formats:</p>
-<DL>
-
-<DT>A (partial) domain-name</dt> <dd>Example: <code>Allow from
-apache.org</code><br> Hosts whose names match, or end in, this string
-are allowed access. Only complete components are matched, so the
-above example will match <code>foo.apache.org</code> but it will not
-match <code>fooapache.org</code>. This configuration will cause the
-server to perform a reverse DNS lookup on the client IP address,
-regardless of the setting of the <a
-href="core.html#hostnamelookups">HostNameLookups</a> directive.</dd>
-
-<DT>A full IP address</dt>
-<DD>Example: <code>Allow from 10.1.2.3</code><br>
-An IP address of a host allowed access</dd>
-
-<DT>A partial IP address</dt>
-<dd>Example: <code>Allow from 10.1</code><br>
-The first 1 to 3 bytes of an IP address, for subnet restriction.</dd>
-
-<DT>A network/netmask pair</dt>
-<dd>Example: <code>Allow from 10.1.0.0/255.255.0.0</code><br>
- A network a.b.c.d, and a netmask w.x.y.z. For more fine-grained subnet
- restriction.</dd>
-
-<DT>A network/nnn CIDR specification</dt> <dd>Example: <code>Allow
-from 10.1.0.0/16</code><br> Similar to the previous case, except the
-netmask consists of nnn high-order 1 bits.</dd>
-</DL>
-
-<p>Note that the last three examples above match exactly the
-same set of hosts.</p>
-
-<p>The third format of the arguments to the <code>Allow</code>
-directive allows access to the server to be controlled based on the
-existence of an <a href="../env.html">environment variable</a>. When
-<code>Allow from env=</code><em>env-variable</em> is specified, then
-the request is allowed access if the environment variable
-<em>env-variable</em> exists. The server provides the ability to set
-environment variables in a flexible way based on characteristics of
-the client request using the directives provided by <a
-href="mod_setenvif.html">mod_setenvif</a>. Therefore, this directive
-can be used to allow access based on such factors as the clients
-<code>User-Agent</code> (browser type), <code>Referer</code>, or other
-HTTP request header fields.</P>
-
-<P>
-Example:
-</P>
-<BLOCKQUOTE><PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_access</h1>
+
+ <p>This module provides access control based on client
+ hostname, IP address, or other characteristics of the client
+ request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_access.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ access_module</p>
+
+ <h2>Summary</h2>
+
+ <p>The directives provided by mod_access are used in <code><a
+ href="core.html#directory">&lt;Directory&gt;</a>, <a
+ href="core.html#files">&lt;Files&gt;</a>,</code> and <code><a
+ href="core.html#location">&lt;Location&gt;</a></code> sections
+ as well as <code><a
+ href="core.html#accessfilename">.htaccess</a></code> files to
+ control access to particular parts of the server. Access can be
+ controlled based on the client hostname, IP address, or other
+ characteristics of the client request, as captured in <a
+ href="../env.html">environment variables</a>. The
+ <code>Allow</code> and <code>Deny</code> directives are used to
+ specify which clients are or are not allowed access to the
+ server, while the <code>Order</code> directive sets the default
+ access state, and configures how the <code>Allow</code> and
+ <code>Deny</code> directives interact with each other.</p>
+
+ <p>Both host-based access restrictions and password-based
+ authentication may be implemented simultaneously. In that case,
+ the <a href="core.html#satsify">Satisfy</a> directive is used
+ to determine how the two sets of restrictions interact.</p>
+
+ <p>In general, access restriction directives apply to all
+ access methods (<code>GET</code>, <code>PUT</code>,
+ <code>POST</code>, etc). This is the desired behavior in most
+ cases. However, it is possible to restrict some methods, while
+ leaving other methods unrestricted, by enclosing the directives
+ in a <a href="core.html#limit">&lt;Limit&gt;</a> section.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#allow">Allow</a></li>
+
+ <li><a href="#deny">Deny</a></li>
+
+ <li><a href="#order">Order</a></li>
+ </ul>
+
+ <p>See also <a href="core.html#satisfy">Satisfy</a> and <a
+ href="core.html#require">Require</a>.</p>
+ <hr />
+
+ <h2><a id="allow" name="allow">Allow</a> <a id="allowfromenv"
+ name="allowfromenv">directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Allow} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Allow from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Allow</code> directive affects which hosts can
+ access an area of the server. Access can be controlled by
+ hostname, IP Address, IP Address range, or by other
+ characteristics of the client request captured in environment
+ variables.</p>
+
+ <p>The first argument to this directive is always
+ <code>from</code>. The subsequent arguments can take three
+ different forms. If <code>Allow from all</code> is specified,
+ then all hosts are allowed access, subject to the configuration
+ of the <code>Deny</code> and <code>Order</code> directives as
+ discussed below. To allow only particular hosts or groups of
+ hosts to access the server, the <em>host</em> can be specified
+ in any of the following formats:</p>
+
+ <dl>
+ <dt>A (partial) domain-name</dt>
+
+ <dd>Example: <code>Allow from apache.org</code><br />
+ Hosts whose names match, or end in, this string are allowed
+ access. Only complete components are matched, so the above
+ example will match <code>foo.apache.org</code> but it will
+ not match <code>fooapache.org</code>. This configuration will
+ cause the server to perform a reverse DNS lookup on the
+ client IP address, regardless of the setting of the <a
+ href="core.html#hostnamelookups">HostNameLookups</a>
+ directive.</dd>
+
+ <dt>A full IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1.2.3</code><br />
+ An IP address of a host allowed access</dd>
+
+ <dt>A partial IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1</code><br />
+ The first 1 to 3 bytes of an IP address, for subnet
+ restriction.</dd>
+
+ <dt>A network/netmask pair</dt>
+
+ <dd>Example: <code>Allow from
+ 10.1.0.0/255.255.0.0</code><br />
+ A network a.b.c.d, and a netmask w.x.y.z. For more
+ fine-grained subnet restriction.</dd>
+
+ <dt>A network/nnn CIDR specification</dt>
+
+ <dd>Example: <code>Allow from 10.1.0.0/16</code><br />
+ Similar to the previous case, except the netmask consists of
+ nnn high-order 1 bits.</dd>
+ </dl>
+
+ <p>Note that the last three examples above match exactly the
+ same set of hosts.</p>
+
+ <p>The third format of the arguments to the <code>Allow</code>
+ directive allows access to the server to be controlled based on
+ the existence of an <a href="../env.html">environment
+ variable</a>. When <code>Allow from
+ env=</code><em>env-variable</em> is specified, then the request
+ is allowed access if the environment variable
+ <em>env-variable</em> exists. The server provides the ability
+ to set environment variables in a flexible way based on
+ characteristics of the client request using the directives
+ provided by <a href="mod_setenvif.html">mod_setenvif</a>.
+ Therefore, this directive can be used to allow access based on
+ such factors as the clients <code>User-Agent</code> (browser
+ type), <code>Referer</code>, or other HTTP request header
+ fields.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+<pre>
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
&lt;Directory /docroot&gt;
Order Deny,Allow
Deny from all
Allow from env=let_me_in
&lt;/Directory&gt;
-</PRE></BLOCKQUOTE>
-
-<p>In this case, browsers with a user-agent string beginning with
-<TT>KnockKnock/2.0</TT> will be allowed access, and all others will be
-denied.</p>
-<P>
-See also <a href="#deny">Deny</a>, <A HREF="#order">Order</A>
-and <A HREF="mod_setenvif.html#SetEnvIf">SetEnvIf</A>.
-</P>
-<HR>
-
-<H2><A NAME="deny">Deny</a> <a name="denyfromenv">directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Deny} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Deny from
- all|<EM>host</em>|env=<em>env-variable</em>
- [<em>host</em>|env=<em>env-variable</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Limit<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_access
-</P>
-
-<p>This directive allows access to the server to be restricted based
-on hostname, IP address, or environment variables. The arguments for
-the <code>Deny</code> directive are identical to the arguments for the
-<a href="#allow">Allow</a> directive.</p>
-
-<p>See also <a href="#allow">Allow</a>, <A HREF="#order">Order</A>
-and <A HREF="mod_setenvif.html#SetEnvIf">SetEnvIf</A>.</p>
-<HR>
-
-<H2><A NAME="order">Order directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Order} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Order <EM>ordering</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Order Deny,Allow</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Limit<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_access
-</P>
-<P>
-The <CODE>Order</CODE> directive controls the default access state and
-the order in which <A HREF="#allow">Allow</A> and <A
-HREF="#deny">Deny</A> directives are evaluated. <EM>Ordering</EM> is
-one of
-</P>
-<DL>
-<DT>Deny,Allow</dt> <DD>The <CODE>Deny</CODE> directives are evaluated
-before the <CODE>Allow</CODE> directives. Access is allowed
-by default. Any client which does not match a <code>Deny</code>
-directive or does match an <code>Allow</code> directive will be
-allowed access to the server.</dd>
-
-<DT>Allow,Deny</dt> <DD>The <CODE>Allow</CODE> directives are
-evaluated before the <CODE>Deny</CODE> directives. Access is
-denied by default. Any client which does not match
-an <code>Allow</code> directive or does match a <code>Deny</code>
-directive will be denied access to the server.</dd>
-
-<DT>Mutual-failure</dt> <DD>Only those hosts which appear on the
-<CODE>Allow</CODE> list and do not appear on the <CODE>Deny</CODE>
-list are granted access. This ordering has the same effect as
-<code>Order Allow,Deny</code> and is deprecated in favor of that
-configuration.</dd>
-</DL>
-
-<P>Keywords may only be separated by a comma; no whitespace is allowed
-between them. Note that in all cases every <CODE>Allow</CODE>
-and <CODE>Deny</CODE> statement is evaluated.</P>
-
-<P>In the following example, all hosts in the apache.org domain are
-allowed access; all other hosts are denied access.
-</P>
-
-<BLOCKQUOTE><CODE>
- Order Deny,Allow<BR>
- Deny from all<BR>
- Allow from apache.org<BR>
-</CODE></BLOCKQUOTE>
-
-<P>In the next example, all hosts in the apache.org domain are allowed
-access, except for the hosts which are in the foo.apache.org
-subdomain, who are denied access. All hosts not in the apache.org
-domain are denied access because the default state is to deny access
-to the server.
-</P>
-
-<blockquote><code>
- Order Allow,Deny<br>
- Allow from apache.org<br>
- Deny from foo.apache.org<br>
-</code></blockquote>
-
-<p>On the other hand, if the <code>Order</code> in the last example is
-changed to <code>Deny,Allow</code>, all hosts will be allowed access.
-This happens because, regardless of the actual ordering of the
-directives in the configuration file, the <code>Allow from
-apache.org</code> will be evaluated last and will override the
-<code>Deny from foo.apache.org</code>. All hosts not in the
-<code>apache.org</code> domain will also be allowed access because the
-default state will change to <em>allow</em>.</p>
-
-<p>The presence of an <code>Order</code> directive can
-affect access to a part of the server even in the absence
-of accompanying <code>Allow</code> and <code>Deny</code>
-directives because of its effect on the default access state.
-For example,</p>
-
-<blockquote><code>
-&lt;Directory /www&gt;<br>
-&nbsp;&nbsp;Order Allow,Deny<br>
-&lt;/Directory&gt;
-</code></blockquote>
-
-<p>will deny all access to the <code>/www</code> directory because
-the default access state will be set to <em>deny</em>.</p>
-
-<p>The <code>Order</code> directive controls the order of access
-directive processing only within each phase of the server's
-configuration processing. This implies, for example, that an
-<code>Allow</code> or <code>Deny</code> directive occurring
-in a &lt;Location&gt; section will always be evaluated after
-an <code>Allow</code> or <code>Deny</code> directive occurring
-in a &lt;Directory&gt; section or <code>.htaccess</code> file,
-regardless of the setting of the <code>Order</code> directive.
-For details on the merging of configuration sections,
-see the documentation on <a href="../sections.html">How Directory,
-Location and Files sections work</a>.</p>
-
-<P>See also: <A HREF="#deny">Deny</A> and <A HREF="#allow">Allow</A>.
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+ </blockquote>
+
+ <p>In this case, browsers with a user-agent string beginning
+ with <tt>KnockKnock/2.0</tt> will be allowed access, and all
+ others will be denied.</p>
+
+ <p>See also <a href="#deny">Deny</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="deny" name="deny">Deny</a> <a id="denyfromenv"
+ name="denyfromenv">directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Deny} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Deny from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>This directive allows access to the server to be restricted
+ based on hostname, IP address, or environment variables. The
+ arguments for the <code>Deny</code> directive are identical to
+ the arguments for the <a href="#allow">Allow</a> directive.</p>
+
+ <p>See also <a href="#allow">Allow</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="order" name="order">Order directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Order} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Order
+ <em>ordering</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>Order
+ Deny,Allow</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Order</code> directive controls the default access
+ state and the order in which <a href="#allow">Allow</a> and <a
+ href="#deny">Deny</a> directives are evaluated.
+ <em>Ordering</em> is one of</p>
+
+ <dl>
+ <dt>Deny,Allow</dt>
+
+ <dd>The <code>Deny</code> directives are evaluated before the
+ <code>Allow</code> directives. Access is allowed by default.
+ Any client which does not match a <code>Deny</code> directive
+ or does match an <code>Allow</code> directive will be allowed
+ access to the server.</dd>
+
+ <dt>Allow,Deny</dt>
+
+ <dd>The <code>Allow</code> directives are evaluated before
+ the <code>Deny</code> directives. Access is denied by
+ default. Any client which does not match an
+ <code>Allow</code> directive or does match a
+ <code>Deny</code> directive will be denied access to the
+ server.</dd>
+
+ <dt>Mutual-failure</dt>
+
+ <dd>Only those hosts which appear on the <code>Allow</code>
+ list and do not appear on the <code>Deny</code> list are
+ granted access. This ordering has the same effect as
+ <code>Order Allow,Deny</code> and is deprecated in favor of
+ that configuration.</dd>
+ </dl>
+
+ <p>Keywords may only be separated by a comma; no whitespace is
+ allowed between them. Note that in all cases every
+ <code>Allow</code> and <code>Deny</code> statement is
+ evaluated.</p>
+
+ <p>In the following example, all hosts in the apache.org domain
+ are allowed access; all other hosts are denied access.</p>
+
+ <blockquote>
+ <code>Order Deny,Allow<br />
+ Deny from all<br />
+ Allow from apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>In the next example, all hosts in the apache.org domain are
+ allowed access, except for the hosts which are in the
+ foo.apache.org subdomain, who are denied access. All hosts not
+ in the apache.org domain are denied access because the default
+ state is to deny access to the server.</p>
+
+ <blockquote>
+ <code>Order Allow,Deny<br />
+ Allow from apache.org<br />
+ Deny from foo.apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>On the other hand, if the <code>Order</code> in the last
+ example is changed to <code>Deny,Allow</code>, all hosts will
+ be allowed access. This happens because, regardless of the
+ actual ordering of the directives in the configuration file,
+ the <code>Allow from apache.org</code> will be evaluated last
+ and will override the <code>Deny from foo.apache.org</code>.
+ All hosts not in the <code>apache.org</code> domain will also
+ be allowed access because the default state will change to
+ <em>allow</em>.</p>
+
+ <p>The presence of an <code>Order</code> directive can affect
+ access to a part of the server even in the absence of
+ accompanying <code>Allow</code> and <code>Deny</code>
+ directives because of its effect on the default access state.
+ For example,</p>
+
+ <blockquote>
+ <code>&lt;Directory /www&gt;<br />
+ &nbsp;&nbsp;Order Allow,Deny<br />
+ &lt;/Directory&gt;</code>
+ </blockquote>
+
+ <p>will deny all access to the <code>/www</code> directory
+ because the default access state will be set to
+ <em>deny</em>.</p>
+
+ <p>The <code>Order</code> directive controls the order of
+ access directive processing only within each phase of the
+ server's configuration processing. This implies, for example,
+ that an <code>Allow</code> or <code>Deny</code> directive
+ occurring in a &lt;Location&gt; section will always be
+ evaluated after an <code>Allow</code> or <code>Deny</code>
+ directive occurring in a &lt;Directory&gt; section or
+ <code>.htaccess</code> file, regardless of the setting of the
+ <code>Order</code> directive. For details on the merging of
+ configuration sections, see the documentation on <a
+ href="../sections.html">How Directory, Location and Files
+ sections work</a>.</p>
+
+ <p>See also: <a href="#deny">Deny</a> and <a
+ href="#allow">Allow</a>. <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_actions.html b/docs/manual/mod/mod_actions.html
index 21f503db74..0749de22cf 100644
--- a/docs/manual/mod/mod_actions.html
+++ b/docs/manual/mod/mod_actions.html
@@ -1,140 +1,115 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_actions</H1>
-
-
-<p>This module provides for executing CGI scripts based on media type or
-request method.
-</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_actions.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> actions_module
-</P>
-
-<H2>Summary</H2>
-<P>
-This module has two directives. The Action directive lets you run CGI
-scripts whenever a file of a certain type is requested. The Script
-directive lets you run CGI scripts whenever a particular method is
-used in a request. This makes it much easier to execute scripts that
-process files.
-</P>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#action">Action</A></LI>
-<LI><A HREF="#script">Script</A></LI>
-</UL>
-
-<HR>
-
-<H2><A NAME="action">Action directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Action <EM>action-type cgi-script</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_actions
-</P>
-<P>
-This directive adds an action, which will activate <EM>cgi-script</EM> when
-<EM>action-type</EM> is triggered by the request. The <EM>action-type</EM> can
-be either a <A HREF="../handler.html">handler</A> or a MIME content type. It
-sends the URL and file path of the requested document using the standard CGI
-PATH_INFO and PATH_TRANSLATED environment variables.
-</P>
-<HR>
-
-<H2><A NAME="script">Script directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Script <EM>method cgi-script</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_actions
-</P>
-
-<P>
-This directive adds an action, which will activate <i>cgi-script</i> when
-a file is requested using the method of <i>method</i>. It sends the
-URL and file path of the requested document using the standard
-CGI PATH_INFO and PATH_TRANSLATED environment variables.
-</P>
-<blockquote>
-Any arbitrary method name may be used. <b>Method names are
-case-sensitive</b>, so <code>Script&nbsp;PUT</code> and
-<code>Script&nbsp;put</code> have two entirely different effects.
-</blockquote>
-<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 (<EM>e.g.</EM>, foo.html?hi). Otherwise, the request
-will proceed normally.
-</P>
-<P>
-Examples:
-</P>
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_actions</h1>
+
+ <p>This module provides for executing CGI scripts based on
+ media type or request method.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_actions.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ actions_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module has two directives. The Action directive lets
+ you run CGI scripts whenever a file of a certain type is
+ requested. The Script directive lets you run CGI scripts
+ whenever a particular method is used in a request. This makes
+ it much easier to execute scripts that process files.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#action">Action</a></li>
+
+ <li><a href="#script">Script</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="action" name="action">Action directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Action <em>action-type
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions</p>
+
+ <p>This directive adds an action, which will activate
+ <em>cgi-script</em> when <em>action-type</em> is triggered by
+ the request. The <em>action-type</em> can be either a <a
+ href="../handler.html">handler</a> or a MIME content type. It
+ sends the URL and file path of the requested document using the
+ standard CGI PATH_INFO and PATH_TRANSLATED environment
+ variables.</p>
+ <hr />
+
+ <h2><a id="script" name="script">Script directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Script <em>method
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions</p>
+
+ <p>This directive adds an action, which will activate
+ <i>cgi-script</i> when a file is requested using the method of
+ <i>method</i>. It sends the URL and file path of the requested
+ document using the standard CGI PATH_INFO and PATH_TRANSLATED
+ environment variables.</p>
+
+ <blockquote>
+ Any arbitrary method name may be used. <b>Method names are
+ case-sensitive</b>, so <code>Script&nbsp;PUT</code> and
+ <code>Script&nbsp;put</code> have two entirely different
+ effects.
+ </blockquote>
+
+ <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
+ (<em>e.g.</em>, foo.html?hi). Otherwise, the request will
+ proceed normally.</p>
+
+ <p>Examples:</p>
+<pre>
# For &lt;ISINDEX&gt;-style searching
Script GET /cgi-bin/search
# A CGI PUT handler
Script PUT /~bob/put.cgi
-</PRE>
+</pre>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_alias.html b/docs/manual/mod/mod_alias.html
index 2e86ec4dee..2ebd8d2781 100644
--- a/docs/manual/mod/mod_alias.html
+++ b/docs/manual/mod/mod_alias.html
@@ -1,418 +1,365 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_alias</H1>
-<P>
-This module provides for mapping different parts of the
-host filesystem in the document tree, and for URL redirection.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_alias.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> alias_module
-</P>
-
-<H2>Summary</H2>
-
-<P>The directives contained in this module allow for manipulation and
-control of URLs as requests arrive at the server. The
-<CODE>Alias</CODE> and <CODE>ScriptAlias</CODE> directives are used to
-map between URLs and filesystem paths. This allows for content which
-is not directly under the <A
-HREF="core.html#documentroot"><CODE>DocumentRoot</CODE></A> to be
-served as part of the web document tree. The <CODE>ScriptAlias</CODE>
-directive has the additional effect of marking the target directory as
-containing only CGI scripts.
-
-<P>The <CODE>Redirect</CODE> directives are used to instruct clients
-to make a new request with a different URL. They are often used
-when a resource has moved to a new location.
-
-<P>A more powerful and flexible set of directives for manipulating
-URLs is contained in the <A
-HREF="mod_rewrite.html"><CODE>mod_rewrite</CODE></A> module.
-
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#alias">Alias</A>
-<LI><A HREF="#aliasmatch">AliasMatch</A>
-<LI><A HREF="#redirect">Redirect</A>
-<LI><A HREF="#redirectmatch">RedirectMatch</A>
-<LI><A HREF="#redirecttemp">RedirectTemp</A>
-<LI><A HREF="#redirectperm">RedirectPermanent</A>
-<LI><A HREF="#scriptalias">ScriptAlias</A>
-<LI><A HREF="#scriptaliasmatch">ScriptAliasMatch</A>
-</UL>
-<HR>
-
-
-<H2><A NAME="alias">Alias directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Alias} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Alias <EM>URL-path file-path</em>|<em>directory-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-<P>
-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>.
-<P>
-Example:
-</P>
-<BLOCKQUOTE><CODE>Alias /image /ftp/pub/image</CODE></BLOCKQUOTE>
-<P>
-A request for http://myserver/image/foo.gif would cause the server to
-return the file /ftp/pub/image/foo.gif.
-</P>
-<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/apache/icons/</CODE> then
-the url <CODE>/icons</CODE> will not be aliased.
-</P>
-<P>
-Note that you may need to specify additional
-<A HREF="core.html#directory"><CODE>&lt;Directory&gt;</CODE></A> sections
-which cover the <EM>destination</EM> of aliases. Aliasing occurs
-before <CODE>&lt;Directory&gt;</CODE> sections are checked, so only
-the destination of aliases are affected. (Note however
-<A HREF="core.html#location"><CODE>&lt;Location&gt;</CODE></A>
-sections are run through once before aliases are performed, so they
-will apply.)
-<P>
-See also <A HREF="#scriptalias">ScriptAlias</A>.
-</P>
-<HR>
-
-<H2><A NAME="aliasmatch">AliasMatch</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AliasMatch <EM>regex file-path</em>|<em>directory-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-
-<P>This directive is equivalent to <A HREF="#alias">Alias</A>, but
-makes use of standard regular expressions, instead of simple prefix
-matching. The supplied regular expression is matched against the
-URL-path, and if it matches, the server will substitute any
-parenthesized matches into the given string and use it as a
-filename. For example, to activate the <CODE>/icons</CODE> directory,
-one might use:
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_alias</h1>
+
+ <p>This module provides for mapping different parts of the host
+ filesystem in the document tree, and for URL redirection.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_alias.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ alias_module</p>
+
+ <h2>Summary</h2>
+
+ <p>The directives contained in this module allow for
+ manipulation and control of URLs as requests arrive at the
+ server. The <code>Alias</code> and <code>ScriptAlias</code>
+ directives are used to map between URLs and filesystem paths.
+ This allows for content which is not directly under the <a
+ href="core.html#documentroot"><code>DocumentRoot</code></a> to
+ be served as part of the web document tree. The
+ <code>ScriptAlias</code> directive has the additional effect of
+ marking the target directory as containing only CGI
+ scripts.</p>
+
+ <p>The <code>Redirect</code> directives are used to instruct
+ clients to make a new request with a different URL. They are
+ often used when a resource has moved to a new location.</p>
+
+ <p>A more powerful and flexible set of directives for
+ manipulating URLs is contained in the <a
+ href="mod_rewrite.html"><code>mod_rewrite</code></a>
+ module.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#alias">Alias</a></li>
+
+ <li><a href="#aliasmatch">AliasMatch</a></li>
+
+ <li><a href="#redirect">Redirect</a></li>
+
+ <li><a href="#redirectmatch">RedirectMatch</a></li>
+
+ <li><a href="#redirecttemp">RedirectTemp</a></li>
+
+ <li><a href="#redirectperm">RedirectPermanent</a></li>
+
+ <li><a href="#scriptalias">ScriptAlias</a></li>
+
+ <li><a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="alias" name="alias">Alias directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Alias} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Alias <em>URL-path
+ file-path</em>|<em>directory-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>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>.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+ <code>Alias /image /ftp/pub/image</code>
+ </blockquote>
+
+ <p>A request for http://myserver/image/foo.gif would cause the
+ server to return the file /ftp/pub/image/foo.gif.</p>
+
+ <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/apache/icons/</code> then the url
+ <code>/icons</code> will not be aliased.</p>
+
+ <p>Note that you may need to specify additional <a
+ href="core.html#directory"><code>&lt;Directory&gt;</code></a>
+ sections which cover the <em>destination</em> of aliases.
+ Aliasing occurs before <code>&lt;Directory&gt;</code> sections
+ are checked, so only the destination of aliases are affected.
+ (Note however <a
+ href="core.html#location"><code>&lt;Location&gt;</code></a>
+ sections are run through once before aliases are performed, so
+ they will apply.)</p>
+
+ <p>See also <a href="#scriptalias">ScriptAlias</a>.</p>
+ <hr />
+
+ <h2><a id="aliasmatch" name="aliasmatch">AliasMatch</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AliasMatch <em>regex
+ file-path</em>|<em>directory-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>This directive is equivalent to <a href="#alias">Alias</a>,
+ but makes use of standard regular expressions, instead of
+ simple prefix matching. The supplied regular expression is
+ matched against the URL-path, and if it matches, the server
+ will substitute any parenthesized matches into the given string
+ and use it as a filename. For example, to activate the
+ <code>/icons</code> directory, one might use:</p>
+<pre>
AliasMatch ^/icons(.*) /usr/local/apache/icons$1
-</PRE>
-</P>
-
-<HR>
-
-<H2><A NAME="redirect">Redirect directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Redirect [<EM>status</EM>]
- <EM>URL-path URL</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-<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>.
-</P>
-<P>
-Example:
-</P>
-<BLOCKQUOTE><CODE>Redirect /service
-http://foo2.bar.com/service</CODE></BLOCKQUOTE>
-<P>
-If the client requests http://myserver/service/foo.txt, it will be told to
-access http://foo2.bar.com/service/foo.txt instead.
-</P>
-<P>
-<STRONG>Note:</STRONG> 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>
-<P>
-If no <EM>status</EM> argument is given, the redirect will be
-&quot;temporary&quot; (HTTP status 302). This indicates to the client that the
-resource has moved temporarily. The <EM>status</EM>
-argument can be used to return other HTTP status codes:
-<P>
-<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>
-<P>
-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).
-</P>
-<HR>
-
-<H2><A NAME="redirectmatch">RedirectMatch</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A>
- RedirectMatch [<EM>status</EM>] <EM>regex URL</EM>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-
-<P>This directive is equivalent to <A HREF="#redirect">Redirect</A>,
-but makes use of standard regular expressions, instead of simple
-prefix matching. The supplied regular expression is matched against
-the URL-path, and if it matches, the server will substitute any
-parenthesized matches into the given string and use it as a
-filename. For example, to redirect all GIF files to like-named JPEG
-files on another server, one might use:
-<PRE>
+</pre>
+ <br />
+ <br />
+
+ <hr />
+
+ <h2><a id="redirect" name="redirect">Redirect
+ directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Redirect
+ [<em>status</em>] <em>URL-path URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <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>.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+ <code>Redirect /service http://foo2.bar.com/service</code>
+ </blockquote>
+
+ <p>If the client requests http://myserver/service/foo.txt, it
+ will be told to access http://foo2.bar.com/service/foo.txt
+ instead.</p>
+
+ <p><strong>Note:</strong> 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>
+
+ <p>If no <em>status</em> argument is given, the redirect will
+ be "temporary" (HTTP status 302). This indicates to the client
+ that the resource has moved temporarily. The <em>status</em>
+ argument can be used to return other HTTP status codes:</p>
+
+ <dl>
+ <dt>permanent</dt>
+
+ <dd>Returns a permanent redirect status (301) indicating that
+ the resource has moved permanently.</dd>
+
+ <dt>temp</dt>
+
+ <dd>Returns a temporary redirect status (302). This is the
+ default.</dd>
+
+ <dt>seeother</dt>
+
+ <dd>Returns a "See Other" status (303) indicating that the
+ resource has been replaced.</dd>
+
+ <dt>gone</dt>
+
+ <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.</dd>
+ </dl>
+
+ <p>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).</p>
+ <hr />
+
+ <h2><a id="redirectmatch"
+ name="redirectmatch">RedirectMatch</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RedirectMatch
+ [<em>status</em>] <em>regex URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>This directive is equivalent to <a
+ href="#redirect">Redirect</a>, but makes use of standard
+ regular expressions, instead of simple prefix matching. The
+ supplied regular expression is matched against the URL-path,
+ and if it matches, the server will substitute any parenthesized
+ matches into the given string and use it as a filename. For
+ example, to redirect all GIF files to like-named JPEG files on
+ another server, one might use:</p>
+<pre>
RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg
-</PRE>
-</P>
-
-<HR>
-
-<H2><A NAME="redirecttemp">RedirectTemp directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RedirectTemp <EM>URL-path URL</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-<P>
-This directive makes the client know that the Redirect is only
-temporary (status 302). Exactly equivalent to <CODE>Redirect
-temp</CODE>.
-</P>
-<HR>
-
-<H2><A NAME="redirectperm">RedirectPermanent directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RedirectPermanent <EM>URL-path URL</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-<P>
-This directive makes the client know that the Redirect is permanent
-(status 301). Exactly equivalent to <CODE>Redirect permanent</CODE>.
-</P>
-<HR>
-
-<H2><A NAME="scriptalias">ScriptAlias directive</A></H2>
-<P>
-<!--%plaintext &lt;?INDEX {\tt ScriptAlias} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScriptAlias <EM>URL-path file-path</em>|<em>directory-path</em>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-<P>
-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 the second argument which is a full
-pathname in the local filesystem.
-<P>
-Example:
-</P>
-<BLOCKQUOTE><CODE>ScriptAlias /cgi-bin/ /web/cgi-bin/</CODE></BLOCKQUOTE>
-<P>
-A request for http://myserver/cgi-bin/foo would cause the server to
-run the script /web/cgi-bin/foo.
-</P>
-
-<HR>
-
-<H2><A NAME="scriptaliasmatch">ScriptAliasMatch</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScriptAliasMatch
- <EM>regex file-path</em>|<em>directory-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_alias
-</P>
-
-<P>This directive is equivalent to <A
-HREF="#scriptalias">ScriptAlias</A>, but makes use of standard regular
-expressions, instead of simple prefix matching. The supplied regular
-expression is matched against the URL-path, and if it matches, the
-server will substitute any parenthesized matches into the given string
-and use it as a filename. For example, to activate the standard
-<CODE>/cgi-bin</CODE>, one might use:
-<PRE>
+</pre>
+ <br />
+ <br />
+
+ <hr />
+
+ <h2><a id="redirecttemp" name="redirecttemp">RedirectTemp
+ directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RedirectTemp
+ <em>URL-path URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>This directive makes the client know that the Redirect is
+ only temporary (status 302). Exactly equivalent to
+ <code>Redirect temp</code>.</p>
+ <hr />
+
+ <h2><a id="redirectperm" name="redirectperm">RedirectPermanent
+ directive</a></h2>
+
+ <p><!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RedirectPermanent
+ <em>URL-path URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>This directive makes the client know that the Redirect is
+ permanent (status 301). Exactly equivalent to <code>Redirect
+ permanent</code>.</p>
+ <hr />
+
+ <h2><a id="scriptalias" name="scriptalias">ScriptAlias
+ directive</a></h2>
+
+ <p>
+ <!--%plaintext &lt;?INDEX {\tt ScriptAlias} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptAlias
+ <em>URL-path file-path</em>|<em>directory-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>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 the second argument which is a
+ full pathname in the local filesystem.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+ <code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code>
+ </blockquote>
+
+ <p>A request for http://myserver/cgi-bin/foo would cause the
+ server to run the script /web/cgi-bin/foo.</p>
+ <hr />
+
+ <h2><a id="scriptaliasmatch"
+ name="scriptaliasmatch">ScriptAliasMatch</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptAliasMatch
+ <em>regex file-path</em>|<em>directory-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_alias</p>
+
+ <p>This directive is equivalent to <a
+ href="#scriptalias">ScriptAlias</a>, but makes use of standard
+ regular expressions, instead of simple prefix matching. The
+ supplied regular expression is matched against the URL-path,
+ and if it matches, the server will substitute any parenthesized
+ matches into the given string and use it as a filename. For
+ example, to activate the standard <code>/cgi-bin</code>, one
+ might use:</p>
+<pre>
ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
-</PRE>
-</P>
+</pre>
+ <br />
+ <br />
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_auth.html b/docs/manual/mod/mod_auth.html
index d624f6519d..7353c26d0e 100644
--- a/docs/manual/mod/mod_auth.html
+++ b/docs/manual/mod/mod_auth.html
@@ -1,246 +1,221 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_auth</H1>
-
-<P>This module provides for user authentication using text files.
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_auth.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> auth_module
-</P>
-
-<H2>Summary</H2>
-
-<P>This module allows the use of HTTP Basic Authentication to restrict
-access by looking up users in plain text password and group files.
-Similar functionality and greater scalability is provided by <A
-HREF="mod_auth_dbm.html">mod_auth_dbm</A> and <A
-HREF="mod_auth_db.html">mod_auth_db</A>. HTTP Digest Authentication
-is provided by <A HREF="mod_auth_digest.html">mod_auth_digest</A>.
-
-
-<H2>Directives</H2>
-
-<UL>
-<LI><A HREF="#authgroupfile">AuthGroupFile</A>
-<LI><A HREF="#authuserfile">AuthUserFile</A>
-<LI><A HREF="#authauthoritative">AuthAuthoritative</A>
-</UL>
-
-<P>See also: <A HREF="core.html#require">require</A>
-and <A HREF="core.html#satisfy">satisfy</A>.</P>
-
-<HR>
-
-
-<H2><A NAME="authgroupfile">AuthGroupFile</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AuthGroupFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthGroupFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth<P>
-
-The AuthGroupFile directive sets the name of a textual file containing the list
-of user groups for user authentication. <EM>File-path</EM> is the path
-to the group file. If it is not absolute (<EM>i.e.</EM>, if it
-doesn't begin with a slash), it is treated as relative to the ServerRoot.
-<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 text 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>
-
-<H2><A NAME="authuserfile">AuthUserFile</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AuthUserFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthUserFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth<P>
-
-The AuthUserFile directive sets the name of a textual file containing
-the list of users and passwords for user
-authentication. <EM>File-path</EM> is the path to the user
-file. If it is not absolute (<EM>i.e.</EM>, if it doesn't begin with a
-slash), it is treated as relative to the ServerRoot.
-<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>
-The utility <a href="../programs/htpasswd.html">htpasswd</a> which is
-installed as part of the binary distribution, or which can be found in
-<code>src/support</code>, is used to maintain this password file. See
-the <code>man</code> page for more details. In short
-<p>
-<blockquote>
- <code>htpasswd -c Filename username</code><br>
- Create a password file 'Filename' with 'username'
- as the initial ID. It will prompt for the password.
- <code>htpasswd Filename username2</code><br>
- Adds or modifies in password file 'Filename' the 'username'.
-</blockquote>
-<P> Note that
-searching large text files is <EM>very</EM> 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>
-<H2><A NAME="authauthoritative">AuthAuthoritative</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AuthAuthoritative} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthAuthoritative on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthAuthoritative on</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth<P>
-
-Setting the AuthAuthoritative directive explicitly to <STRONG>'off'</STRONG>
-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 <STRONG>no userID</STRONG> or
-<STRONG>rule</STRONG> 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 <CODE>Require</CODE> 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>,
-<CODE>mod_auth_msql.c</CODE>, 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>
-
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> 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 NCSA 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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_auth</h1>
+
+ <p>This module provides for user authentication using text
+ files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_auth.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ auth_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module allows the use of HTTP Basic Authentication to
+ restrict access by looking up users in plain text password and
+ group files. Similar functionality and greater scalability is
+ provided by <a href="mod_auth_dbm.html">mod_auth_dbm</a> and <a
+ href="mod_auth_db.html">mod_auth_db</a>. HTTP Digest
+ Authentication is provided by <a
+ href="mod_auth_digest.html">mod_auth_digest</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#authgroupfile">AuthGroupFile</a></li>
+
+ <li><a href="#authuserfile">AuthUserFile</a></li>
+
+ <li><a href="#authauthoritative">AuthAuthoritative</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#require">require</a> and <a
+ href="core.html#satisfy">satisfy</a>.</p>
+ <hr />
+
+ <h2><a id="authgroupfile"
+ name="authgroupfile">AuthGroupFile</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthGroupFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthGroupFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth
+
+ <p>The AuthGroupFile directive sets the name of a textual file
+ containing the list of user groups for user authentication.
+ <em>File-path</em> is the path to the group file. If it is not
+ absolute (<em>i.e.</em>, if it doesn't begin with a slash), it
+ is treated as relative to the ServerRoot.</p>
+
+ <p>Each line of the group file contains a groupname followed by
+ a colon, followed by the member usernames separated by spaces.
+ Example:</p>
+
+ <blockquote>
+ <code>mygroup: bob joe anne</code>
+ </blockquote>
+ Note that searching large text 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>
+
+ <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 />
+
+ <h2><a id="authuserfile" name="authuserfile">AuthUserFile</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthUserFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthUserFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth
+
+ <p>The AuthUserFile directive sets the name of a textual file
+ containing the list of users and passwords for user
+ authentication. <em>File-path</em> is the path to the user
+ file. If it is not absolute (<em>i.e.</em>, if it doesn't begin
+ with a slash), it is treated as relative to the ServerRoot.</p>
+
+ <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>
+
+ <p>The utility <a href="../programs/htpasswd.html">htpasswd</a>
+ which is installed as part of the binary distribution, or which
+ can be found in <code>src/support</code>, is used to maintain
+ this password file. See the <code>man</code> page for more
+ details. In short</p>
+
+ <blockquote>
+ <code>htpasswd -c Filename username</code><br />
+ Create a password file 'Filename' with 'username' as the
+ initial ID. It will prompt for the password. <code>htpasswd
+ Filename username2</code><br />
+ Adds or modifies in password file 'Filename' the 'username'.
+ </blockquote>
+
+ <p>Note that searching large text files is <em>very</em>
+ inefficient; <a
+ href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>
+ should be used instead.</p>
+
+ <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>
+
+ <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 />
+
+ <h2><a id="authauthoritative"
+ name="authauthoritative">AuthAuthoritative</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthAuthoritative} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthAuthoritative
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthAuthoritative on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth
+
+ <p>Setting the AuthAuthoritative directive explicitly to
+ <strong>'off'</strong> 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 <strong>no
+ userID</strong> or <strong>rule</strong> 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>
+
+ <p>So if a userID appears in the database of more than one
+ module; or if a valid <code>Require</code> 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>
+
+ <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>,
+ <code>mod_auth_msql.c</code>, 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>
+
+ <p><a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 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 NCSA compliant behaviour.</p>
+
+ <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>
+
+ <p>See also <a href="core.html#authname">AuthName</a>, <a
+ href="core.html#authtype">AuthType</a> and <a
+ href="#authgroupfile">AuthGroupFile</a>.</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_auth_anon.html b/docs/manual/mod/mod_auth_anon.html
index d5f28d6db8..a7d7f97ef6 100644
--- a/docs/manual/mod/mod_auth_anon.html
+++ b/docs/manual/mod/mod_auth_anon.html
@@ -1,322 +1,277 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_auth_anon</H1>
-
-This module allows "anonymous" user access to authenticated areas.
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_auth_anon.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> anon_auth_module
-</P>
-
-
-<H2>Summary</H2>
-
-<P>This module does access control in a manner similar to
-anonymous-ftp sites; <EM>i.e.</EM> have a 'magic' user id 'anonymous'
-and the email address as a password. These email addresses can be
-logged.</p>
-
-<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>
-
-<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>
-
-<H2><A NAME="Example">Example</A></H2>
-
-The example below (when combined with the Auth directives
-of a htpasswd-file based (or GDM, mSQL <EM>etc.</EM>) 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 <STRONG>not</STRONG> case sensitive.
-<LI>
-And the Email addresses entered in the passwd field are logged to
-the error log file
-(<CODE>Anonymous_LogEmail</CODE>)
-</UL>
-<P>
-Excerpt of access.conf:
-<BLOCKQUOTE><CODE>
-Anonymous_NoUserId off<BR>
-Anonymous_MustGiveEmail on<BR>
-Anonymous_VerifyEmail on<BR>
-Anonymous_LogEmail on<BR>
-Anonymous anonymous guest www test welcome<P>
-<P>
-AuthName "Use 'anonymous' &amp; Email address for guest entry"<BR>
-AuthType basic
-<P>
-# An AuthUserFile/AuthDBUserFile/AuthDBMUserFile<BR>
-# directive must be specified, or use<BR>
-# Anonymous_Authoritative for public access.<BR>
-# In the .htaccess for the public directory, add:<BR>
-&lt;Files *&gt;<BR>
-Order Deny,Allow <BR>
-Allow from all <BR>
-<P>
-Require valid-user <BR>
-&lt;/Files&gt;<BR>
-</CODE></BLOCKQUOTE>
-
-<HR>
-
-<H2><A NAME="anonymous">Anonymous directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt Anonymous} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous <EM>user</em> [<em>user</em>] ...<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> none<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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 <STRONG>case-IN-sensitive</STRONG>.
- <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>
-
-<H2><A NAME="Authoritative">Anonymous_Authoritative directive</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous_Authoritative on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Anonymous_Authoritative off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>
-
-<H2><A NAME="LogEmail">Anonymous_LogEmail directive</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous_LogEmail on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Anonymous_LogEmail on</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_anon<P>
-
- When set 'on', the default, the 'password' entered (which hopefully
- contains a sensible email address) is logged in the error log.
-<HR>
-
-<H2><A NAME="MustGiveEmail">Anonymous_MustGiveEmail directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt Anonymous_MustGiveEmail} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous_MustGiveEmail on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Anonymous_MustGiveEmail on</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_anon<P>
-
- Specifies whether the user must specify an email
- address as the password. This prohibits blank passwords.
-<HR>
-
-<H2><A NAME="NoUserID">Anonymous_NoUserID directive</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous_NoUserID on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Anonymous_NoUserID off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>
-
-<H2><A NAME="VerifyEmail">Anonymous_VerifyEmail directive</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Anonymous_VerifyEmail on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Anonymous_VerifyEmail off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>).
-
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_auth_anon</h1>
+ This module allows "anonymous" user access to authenticated
+ areas.
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_auth_anon.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ anon_auth_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module does access control in a manner similar to
+ anonymous-ftp sites; <em>i.e.</em> have a 'magic' user id
+ 'anonymous' and the email address as a password. These email
+ addresses can be logged.</p>
+
+ <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>
+
+ <h2><a id="Directives" name="Directives">Directives</a></h2>
+
+ <ul>
+ <li><a href="#anonymous">Anonymous</a></li>
+
+ <li><a href="#Authoritative">Anonymous_Authoritative</a></li>
+
+ <li><a href="#LogEmail">Anonymous_LogEmail</a></li>
+
+ <li><a href="#MustGiveEmail">Anonymous_MustGiveEmail</a></li>
+
+ <li><a href="#NoUserID">Anonymous_NoUserID</a></li>
+
+ <li><a href="#VerifyEmail">Anonymous_VerifyEmail</a></li>
+ </ul>
+
+ <h2><a id="Example" name="Example">Example</a></h2>
+ The example below (when combined with the Auth directives of a
+ htpasswd-file based (or GDM, mSQL <em>etc.</em>) 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>
+
+ <li>It insists that the user enters a password.
+ (<code>Anonymous_MustGiveEmail</code>)</li>
+
+ <li>The password entered must be a valid email address, ie.
+ contain at least one '@' and a '.'.
+ (<code>Anonymous_VerifyEmail</code>)</li>
+
+ <li>The userID must be one of <code>anonymous guest www test
+ welcome</code> and comparison is <strong>not</strong> case
+ sensitive.</li>
+
+ <li>And the Email addresses entered in the passwd field are
+ logged to the error log file
+ (<code>Anonymous_LogEmail</code>)</li>
+ </ul>
+
+ <p>Excerpt of access.conf:</p>
+
+ <blockquote>
+ <code>Anonymous_NoUserId off<br />
+ Anonymous_MustGiveEmail on<br />
+ Anonymous_VerifyEmail on<br />
+ Anonymous_LogEmail on<br />
+ Anonymous anonymous guest www test welcome</code>
+
+ <p><code>AuthName "Use 'anonymous' &amp; Email address for
+ guest entry"<br />
+ AuthType basic</code></p>
+
+ <p><code># An
+ AuthUserFile/AuthDBUserFile/AuthDBMUserFile<br />
+ # directive must be specified, or use<br />
+ # Anonymous_Authoritative for public access.<br />
+ # In the .htaccess for the public directory, add:<br />
+ &lt;Files *&gt;<br />
+ Order Deny,Allow<br />
+ Allow from all<br />
+ </code></p>
+
+ <p><code>Require valid-user<br />
+ &lt;/Files&gt;<br />
+ </code></p>
+ </blockquote>
+ <hr />
+
+ <h2><a id="anonymous" name="anonymous">Anonymous
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt Anonymous} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous <em>user</em>
+ [<em>user</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>
+
+ <p>Please note that the comparison is
+ <strong>case-IN-sensitive</strong>.<br />
+ I strongly suggest that the magic username
+ '<code>anonymous</code>' is always one of the allowed
+ userIDs.</p>
+
+ <p>Example:<br />
+ <code>Anonymous anonymous "Not Registered" 'I don\'t
+ know'</code></p>
+
+ <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'.</p>
+ <hr />
+
+ <h2><a id="Authoritative"
+ name="Authoritative">Anonymous_Authoritative directive</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous_Authoritative
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>Anonymous_Authoritative off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>
+
+ <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.</p>
+ <hr />
+
+ <h2><a id="LogEmail" name="LogEmail">Anonymous_LogEmail
+ directive</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous_LogEmail
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>Anonymous_LogEmail on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_anon
+
+ <p>When set 'on', the default, the 'password' entered (which
+ hopefully contains a sensible email address) is logged in the
+ error log.</p>
+ <hr />
+
+ <h2><a id="MustGiveEmail"
+ name="MustGiveEmail">Anonymous_MustGiveEmail directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt Anonymous_MustGiveEmail} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous_MustGiveEmail
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>Anonymous_MustGiveEmail on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_anon
+
+ <p>Specifies whether the user must specify an email address as
+ the password. This prohibits blank passwords.</p>
+ <hr />
+
+ <h2><a id="NoUserID" name="NoUserID">Anonymous_NoUserID
+ directive</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous_NoUserID
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>Anonymous_NoUserID off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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.</p>
+ <hr />
+
+ <h2><a id="VerifyEmail"
+ name="VerifyEmail">Anonymous_VerifyEmail directive</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Anonymous_VerifyEmail
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>Anonymous_VerifyEmail off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>).
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_auth_db.html b/docs/manual/mod/mod_auth_db.html
index 04e24637ca..92903e725b 100644
--- a/docs/manual/mod/mod_auth_db.html
+++ b/docs/manual/mod/mod_auth_db.html
@@ -1,250 +1,235 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_auth_db</H1>
-
-<p>This module provides for user authentication using Berkeley DB
-files. </p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_auth_db.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> db_auth_module
-</P>
-
-<h2>Summary</h2>
-
-<p>This module provides 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.</p>
-
-<p>On some BSD systems (<EM>e.g.</EM>, FreeBSD and NetBSD) dbm is
-automatically mapped to Berkeley DB. You can use either <A
-HREF="mod_auth_dbm.html">mod_auth_dbm</A> or mod_auth_db. The latter
-makes it more obvious that it's Berkeley DB. On other platforms where
-you want to use the DB library you usually have to install it
-first. See <A
-HREF="http://www.sleepycat.com/">http://www.sleepycat.com/</A> for the
-distribution. The interface this module uses is the one from DB
-version 1.85 and 1.86, but DB version 2.x can also be used when
-compatibility mode is enabled.</p>
-
-<h2>Directives</h2>
-
-<UL>
-<LI><A HREF="#authdbgroupfile">AuthDBGroupFile</A>
-<LI><A HREF="#authdbuserfile">AuthDBUserFile</A>
-<LI><A HREF="#authdbauthoritative">AuthDBAuthoritative</A>
-</UL>
-
-<p>See also: <a href="core.html#satisfy">satisfy</a> and
-<a href="core.html#require">require</a>.</p>
-
-<HR>
-
-
-<H2><A NAME="authdbgroupfile">AuthDBGroupFile directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBGroupFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBGroupFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_db<P>
-
-The AuthDBGroupFile directive sets the name of a DB file containing the list
-of user groups for user authentication. <EM>File-path</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>
-
-<H2><A NAME="authdbuserfile">AuthDBUserFile</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBUserFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBUserFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>File-path</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>
-
-<p>A perl script called
-href="../programs/dbmmanage.html">dbmmanage</a> is included with
-Apache. This program can be used to create and update DB format
-password files for use with this module.</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>
-<H2><A NAME="authdbauthoritative">AuthDBAuthoritative</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBAuthoritative} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBAuthoritative on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDBAuthoritative on</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth<P>
-
-Setting the AuthDBAuthoritative directive explicitly to <STRONG>'off'</STRONG>
-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 <STRONG>no userID</STRONG> or
-<STRONG>rule</STRONG> 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 <CODE>Require</CODE> 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>
-
-
-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 NCSA 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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_auth_db</h1>
+
+ <p>This module provides for user authentication using Berkeley
+ DB files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_auth_db.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ db_auth_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides 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.</p>
+
+ <p>On some BSD systems (<em>e.g.</em>, FreeBSD and NetBSD) dbm
+ is automatically mapped to Berkeley DB. You can use either <a
+ href="mod_auth_dbm.html">mod_auth_dbm</a> or mod_auth_db. The
+ latter makes it more obvious that it's Berkeley DB. On other
+ platforms where you want to use the DB library you usually have
+ to install it first. See <a
+ href="http://www.sleepycat.com/">http://www.sleepycat.com/</a>
+ for the distribution. The interface this module uses is the one
+ from DB version 1.85 and 1.86, but DB version 2.x can also be
+ used when compatibility mode is enabled.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#authdbgroupfile">AuthDBGroupFile</a></li>
+
+ <li><a href="#authdbuserfile">AuthDBUserFile</a></li>
+
+ <li><a
+ href="#authdbauthoritative">AuthDBAuthoritative</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#satisfy">satisfy</a> and <a
+ href="core.html#require">require</a>.</p>
+ <hr />
+
+ <h2><a id="authdbgroupfile"
+ name="authdbgroupfile">AuthDBGroupFile directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBGroupFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBGroupFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_db
+
+ <p>The AuthDBGroupFile directive sets the name of a DB file
+ containing the list of user groups for user authentication.
+ <em>File-path</em> is the absolute path to the group file.</p>
+
+ <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>
+
+ <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>
+
+ <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
+
+ <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 />
+
+ <h2><a id="authdbuserfile"
+ name="authdbuserfile">AuthDBUserFile</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBUserFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBUserFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>File-path</em> is the absolute path to the
+ user file.</p>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <p>A perl script called
+ href="../programs/dbmmanage.html"&gt;dbmmanage is included with
+ Apache. This program can be used to create and update DB format
+ password files for use with this module.</p>
+ See also <a href="core.html#authname">AuthName</a>, <a
+ href="core.html#authtype">AuthType</a> and <a
+ href="#authdbgroupfile">AuthDBGroupFile</a>.
+ <hr />
+
+ <h2><a id="authdbauthoritative"
+ name="authdbauthoritative">AuthDBAuthoritative</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBAuthoritative} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBAuthoritative
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDBAuthoritative on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth
+
+ <p>Setting the AuthDBAuthoritative directive explicitly to
+ <strong>'off'</strong> 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 <strong>no
+ userID</strong> or <strong>rule</strong> 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>
+
+ <p>So if a userID appears in the database of more than one
+ module; or if a valid <code>Require</code> 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>
+
+ <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>
+
+ <p>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 NCSA
+ compliant behaviour.</p>
+
+ <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>
+
+ <p>See also <a href="core.html#authname">AuthName</a>, <a
+ href="core.html#authtype">AuthType</a> and <a
+ href="#authdbgroupfile">AuthDBGroupFile</a>.</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_auth_dbm.html b/docs/manual/mod/mod_auth_dbm.html
index 41e71b0b58..8d9f88af61 100644
--- a/docs/manual/mod/mod_auth_dbm.html
+++ b/docs/manual/mod/mod_auth_dbm.html
@@ -1,242 +1,226 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_auth_dbm</H1>
-
-<p>This module provides for user authentication using DBM files.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_auth_dbm.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> dbm_auth_module
-</P>
-
-<h2>Summary</h2>
-
-<p>This module provides for HTTP Basic Authentication, where the
-usernames and passwords are stored in DBM type database files. It is
-an alternative to the plain text password files provided by <a
-href="mod_auth.html">mod_auth</A> and the Berkely DB password files
-provided by <a href="mod_auth_db.html">mod_auth_db</a>.</p>
-
-<h2>Directives</h2>
-
-<ul>
-<LI><A HREF="#authdbmgroupfile">AuthDBMGroupFile</A>
-<LI><A HREF="#authdbmuserfile">AuthDBMUserFile</A>
-<LI><A HREF="#authdbmauthoritative">AuthDBMAuthoritative</A>
-</ul>
-
-<p>See also: <a href="core.html#satisfy">Satisfy</a> and
-<a href="core.html#require">Require</a>.
-<HR>
-
-
-<H2><A NAME="authdbmgroupfile">AuthDBMGroupFile</A></H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBMGroupFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBMGroupFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_dbm<P>
-
-The AuthDBMGroupFile directive sets the name of a DBM file containing the list
-of user groups for user authentication. <EM>File-path</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>
-
-<H2><A NAME="authdbmuserfile">AuthDBMUserFile</A></H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBMUserFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBMUserFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>File-path</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>
-
-<p>A perl script called
-href="../programs/dbmmanage.html">dbmmanage</a> is included with
-Apache. This program can be used to create and update DBM format
-password files for use with this module.</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>
-<H2><A NAME="authdbmauthoritative">AuthDBMAuthoritative</A></H2>
-<!--%plaintext &lt;?INDEX {\tt AuthDBMAuthoritative} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDBMAuthoritative on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <code>AuthDBMAuthoritative on</code><br>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_dbm<P>
-
-Setting the AuthDBMAuthoritative directive explicitly to <STRONG>'off'</STRONG>
-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 <STRONG>no userID</STRONG> or
-<STRONG>rule</STRONG> 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 <CODE>Require</CODE> 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>
-
-
-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 NCSA 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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_auth_dbm</h1>
+
+ <p>This module provides for user authentication using DBM
+ files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_auth_dbm.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ dbm_auth_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides for HTTP Basic Authentication, where
+ the usernames and passwords are stored in DBM type database
+ files. It is an alternative to the plain text password files
+ provided by <a href="mod_auth.html">mod_auth</a> and the
+ Berkely DB password files provided by <a
+ href="mod_auth_db.html">mod_auth_db</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#authdbmgroupfile">AuthDBMGroupFile</a></li>
+
+ <li><a href="#authdbmuserfile">AuthDBMUserFile</a></li>
+
+ <li><a
+ href="#authdbmauthoritative">AuthDBMAuthoritative</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#satisfy">Satisfy</a> and <a
+ href="core.html#require">Require</a>.</p>
+ <hr />
+
+ <h2><a id="authdbmgroupfile"
+ name="authdbmgroupfile">AuthDBMGroupFile</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBMGroupFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBMGroupFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_dbm
+
+ <p>The AuthDBMGroupFile directive sets the name of a DBM file
+ containing the list of user groups for user authentication.
+ <em>File-path</em> is the absolute path to the group file.</p>
+
+ <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>
+
+ <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>
+
+ <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
+
+ <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 />
+
+ <h2><a id="authdbmuserfile"
+ name="authdbmuserfile">AuthDBMUserFile</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBMUserFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBMUserFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>File-path</em> is the absolute path to the
+ user file.</p>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <p>A perl script called
+ href="../programs/dbmmanage.html"&gt;dbmmanage is included with
+ Apache. This program can be used to create and update DBM
+ format password files for use with this module.</p>
+ See also <a href="core.html#authname">AuthName</a>, <a
+ href="core.html#authtype">AuthType</a> and <a
+ href="#authdbmgroupfile">AuthDBMGroupFile</a>.
+ <hr />
+
+ <h2><a id="authdbmauthoritative"
+ name="authdbmauthoritative">AuthDBMAuthoritative</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt AuthDBMAuthoritative} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDBMAuthoritative
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDBMAuthoritative on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_dbm
+
+ <p>Setting the AuthDBMAuthoritative directive explicitly to
+ <strong>'off'</strong> 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 <strong>no
+ userID</strong> or <strong>rule</strong> 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>
+
+ <p>So if a userID appears in the database of more than one
+ module; or if a valid <code>Require</code> 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>
+
+ <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>
+
+ <p>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 NCSA
+ compliant behaviour.</p>
+
+ <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>
+
+ <p>See also <a href="core.html#authname">AuthName</a>, <a
+ href="core.html#authtype">AuthType</a> and <a
+ href="#authdbmgroupfile">AuthDBMGroupFile</a>.</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_auth_digest.html b/docs/manual/mod/mod_auth_digest.html
index 8a0108e84a..f20ae0b225 100644
--- a/docs/manual/mod/mod_auth_digest.html
+++ b/docs/manual/mod/mod_auth_digest.html
@@ -1,73 +1,79 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_auth_digest</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_auth_digest</H1>
-
-<p>This module provides for user authentication using MD5 Digest
-Authentication.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Experimental
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_auth_digest.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> digest_auth_module
-</P>
-
-<h2>Summary</h2>
-
-<P>This is an updated version of <A
-HREF="mod_digest.html">mod_digest</A>. However, it has not been
-extensively tested and is therefore marked experimental. If you use
-this module, you must make sure to <em>not</em> use mod_digest
-(because they share some of the same configuration directives).
-
-<h2>Directives</h2>
-
-<ul>
-<LI><A HREF="#authdigestfile">AuthDigestFile</A>
-<LI><A HREF="#authdigestgroupfile">AuthDigestGroupFile</A>
-<LI><A HREF="#authdigestqop">AuthDigestQop</A>
-<LI><A HREF="#authdigestnoncelifetime">AuthDigestNonceLifetime</A>
-<LI><A HREF="#authdigestnonceformat">AuthDigestNonceFormat</A>
-<LI><A HREF="#authdigestnccheck">AuthDigestNcCheck</A>
-<LI><A HREF="#authdigestalgorithm">AuthDigestAlgorithm</A>
-<LI><A HREF="#authdigestdomain">AuthDigestDomain</A>
-</ul>
-
-<p>See also: <a href="core.html#require">Require</a> and
-<a href="core.html#satisfy">Satisfy</a>.
-
-<H3><A NAME="usingdigest">Using Digest Authentication</A></H3>
-
-<P>Using MD5 Digest authentication is very simple. Simply set up
-authentication normally, using "AuthType Digest" and "AuthDigestFile"
-instead of the normal "AuthType Basic" and "AuthUserFile"; also,
-replace any "AuthGroupFile" with "AuthDigestGroupFile". Then add a
-"AuthDigestDomain" directive containing at least the root URI(s) for
-this protection space. Example:
-
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_auth_digest</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_auth_digest</h1>
+
+ <p>This module provides for user authentication using MD5
+ Digest Authentication.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_auth_digest.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ digest_auth_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an updated version of <a
+ href="mod_digest.html">mod_digest</a>. However, it has not been
+ extensively tested and is therefore marked experimental. If you
+ use this module, you must make sure to <em>not</em> use
+ mod_digest (because they share some of the same configuration
+ directives).</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#authdigestfile">AuthDigestFile</a></li>
+
+ <li><a
+ href="#authdigestgroupfile">AuthDigestGroupFile</a></li>
+
+ <li><a href="#authdigestqop">AuthDigestQop</a></li>
+
+ <li><a
+ href="#authdigestnoncelifetime">AuthDigestNonceLifetime</a></li>
+
+ <li><a
+ href="#authdigestnonceformat">AuthDigestNonceFormat</a></li>
+
+ <li><a href="#authdigestnccheck">AuthDigestNcCheck</a></li>
+
+ <li><a
+ href="#authdigestalgorithm">AuthDigestAlgorithm</a></li>
+
+ <li><a href="#authdigestdomain">AuthDigestDomain</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#require">Require</a> and <a
+ href="core.html#satisfy">Satisfy</a>.</p>
+
+ <h3><a id="usingdigest" name="usingdigest">Using Digest
+ Authentication</a></h3>
+
+ <p>Using MD5 Digest authentication is very simple. Simply set
+ up authentication normally, using "AuthType Digest" and
+ "AuthDigestFile" instead of the normal "AuthType Basic" and
+ "AuthUserFile"; also, replace any "AuthGroupFile" with
+ "AuthDigestGroupFile". Then add a "AuthDigestDomain" directive
+ containing at least the root URI(s) for this protection space.
+ Example:</p>
+<pre>
&lt;Location /private/&gt;
AuthType Digest
AuthName "private area"
@@ -75,338 +81,287 @@ this protection space. Example:
AuthDigestFile /web/auth/.digest_pw
Require valid-user
&lt;/Location&gt;
-</PRE>
-
-<P><strong>Note:</strong> MD5 authentication provides a more secure
-password system than Basic authentication, but only works with supporting
-browsers. As of this writing (July 1999), the only major browsers which
-support digest authentication are <A
-HREF="http://www.microsoft.com/windows/ie/">Internet Explorer 5.0</A> and
-<A HREF="http://www.w3.org/Amaya/">Amaya</A>. 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.
-
-
-<HR>
-
-
-
-
-<H2><A NAME="authdigestfile">AuthDigestFile</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest<BR>
-
-<P>The AuthDigestFile directive sets the name of a textual file containing
-the list of users and encoded passwords for digest authentication.
-<EM>File-path</EM> is the absolute path to the user file.
-
-<P>The digest file uses a special format. Files in this format can be
-created using the <a href="../programs/htdigest.html">htdigest</a>
-utility found in the support/ subdirectory of the Apache distribution.
-
-<HR>
-
-<H2><A NAME="authdigestgroupfile">AuthDigestGroupFile</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestGroupFile <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P>The AuthDigestGroupFile directive sets the name of a textual file
-containing the list of groups and their members (user names).
-<EM>File-path</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 text files is <EM>very</EM> inefficient.
-
-<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.
-
-<HR>
-
-<H2><A NAME="authdigestqop">AuthDigestQop</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestQop none|auth|auth-int
-[auth|auth-int]<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDigestQop auth</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P>The AuthDigestQop directive determines the quality-of-protection to use.
-<EM>auth</EM> will only do authentication (username/password);
-<EM>auth-int</EM> is authentication plus integrity checking (an MD5 hash
-of the entity is also computed and checked); <EM>none</EM> will cause the
-module to use the old RFC-2069 digest algorithm (which does not include
-integrity checking). Both <EM>auth</em> and <EM>auth-int</EM> may be
-specified, in which the case the browser will choose which of these to
-use. <EM>none</EM> should only be used if the browser for some reason
-does not like the challenge it receives otherwise.
-
-<P><STRONG><EM>auth-int</EM> is not implemented yet</STRONG>.
-
-<HR>
-
-<H2><A NAME="authdigestnoncelifetime">AuthDigestNonceLifetime</A>
-directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestNonceLifetime <EM>seconds</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDigestNonceLifetime 300</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P>The AuthDigestNonceLifetime directive controls how long the server
-nonce is valid. When the client contacts the server using an expired
-nonce the server will send back a 401 with <code>stale=true</code>. If
-<EM>seconds</EM> is greater than 0 then it specifies the amount of
-time for which the nonce is valid; this should probably never be set
-to less than 10 seconds. If <EM>seconds</EM> is less than 0 then
-the nonce never expires.
-
-<!-- Not implemented yet
-If <EM>seconds</EM> is 0 then the nonce may be used exactly once
-by the client. Note that while one-time-nonces provide higher security
-against replay attacks, they also have significant performance
-implications, as the browser cannot pipeline or multiple connections
-for the requests. Because browsers cannot easily detect that
-one-time-nonces are being used, this may lead to browsers trying to
-pipeline requests and receiving 401 responses for all but the first
-request, requiring the browser to resend the requests. Note also that
-the protection against reply attacks only makes sense for dynamically
-generated content and things like POST requests; for static content
-the attacker may already have the complete response, so one-time-nonces
-do not make sense here.
--->
-
-<HR>
-<H2><A NAME="authdigestnonceformat">AuthDigestNonceFormat</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestNonceFormat <EM>???</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDigestNonceFormat ???</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P><STRONG>Not implemented yet.</STRONG>
-<!--
-<P>The AuthDigestNonceFormat directive determines how the nonce is
-generated.
--->
-
-<HR>
-<H2><A NAME="authdigestnccheck">AuthDigestNcCheck</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestNcCheck On|Off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDigestNcCheck Off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>Not applicable</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P><STRONG>Not implemented yet.</STRONG>
-<!--
-<P>The AuthDigestNcCheck directive enables or disables the checking of the
-nonce-count sent by the server.
-
-<P>While recommended from a security standpoint, turning this directive
-On has one important performance implication. To check the nonce-count
-*all* requests (which have an Authorization header, irrespective of
-whether they require digest authentication) must be serialized through
-a critical section. If the server is handling a large number of
-requests which contain the Authorization header then this may noticeably
-impact performance.
--->
-
-<HR>
-<H2><A NAME="authdigestalgorithm">AuthDigestAlgorithm</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestAlgorithm MD5|MD5-sess<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>AuthDigestAlgorithm MD5</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P>The AuthDigestAlgorithm directive selects the algorithm used to calculate
-the challenge and response hashes.
-
-<P><STRONG><EM>MD5-sess</EM> is not correctly implemented yet</STRONG>.
-<!--
-<P>To use <EM>MD5-sess</EM> you must first code up the
-<VAR>get_userpw_hash()</VAR> function in <VAR>mod_auth_digest.c</VAR> .
--->
-
-<HR>
-<H2><A NAME="authdigestdomain">AuthDigestDomain</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AuthDigestDomain <EM>URI</em>
-[<em>URI</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> AuthConfig<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Experimental<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_auth_digest
-
-<P>The AuthDigestDomain directive allows you to specify one or more URIs
-which are in the same protection space (i.e. use the same realm and
-username/password info). The specified URIs are prefixes, i.e. the client
-will assume that all URIs "below" these are also protected by the same
-username/password. The URIs may be either absolute URIs (i.e. inluding a
-scheme, host, port, etc) or relative URIs.
-
-<P>This directive <em>should</em> always be specified and contain at least
-the (set of) root URI(s) for this space. Omitting to do so will cause the
-client to send the Authorization header for <em>every request</em> sent to
-this server. Apart from increasing the size of the request, it may also
-have a detrimental effect on performance if "AuthDigestNcCheck" is on.
-
-<P>The URIs specified can also point to different servers, in which case
-clients (which understand this) will then share username/password info
-across multiple servers without prompting the user each time.
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+
+ <p><strong>Note:</strong> MD5 authentication provides a more
+ secure password system than Basic authentication, but only
+ works with supporting browsers. As of this writing (July 1999),
+ the only major browsers which support digest authentication are
+ <a href="http://www.microsoft.com/windows/ie/">Internet
+ Explorer 5.0</a> and <a
+ href="http://www.w3.org/Amaya/">Amaya</a>. 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 />
+
+ <h2><a id="authdigestfile"
+ name="authdigestfile">AuthDigestFile</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest<br />
+
+
+ <p>The AuthDigestFile directive sets the name of a textual file
+ containing the list of users and encoded passwords for digest
+ authentication. <em>File-path</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 <a
+ href="../programs/htdigest.html">htdigest</a> utility found in
+ the support/ subdirectory of the Apache distribution.</p>
+ <hr />
+
+ <h2><a id="authdigestgroupfile"
+ name="authdigestgroupfile">AuthDigestGroupFile</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestGroupFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p>The AuthDigestGroupFile directive sets the name of a textual
+ file containing the list of groups and their members (user
+ names). <em>File-path</em> is the absolute path to the group
+ file.</p>
+
+ <p>Each line of the group file contains a groupname followed by
+ a colon, followed by the member usernames separated by spaces.
+ Example:</p>
+
+ <blockquote>
+ <code>mygroup: bob joe anne</code>
+ </blockquote>
+ Note that searching large text files is <em>very</em>
+ inefficient.
+
+ <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>
+ <hr />
+
+ <h2><a id="authdigestqop"
+ name="authdigestqop">AuthDigestQop</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestQop
+ none|auth|auth-int [auth|auth-int]<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>AuthDigestQop
+ auth</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p>The AuthDigestQop directive determines the
+ quality-of-protection to use. <em>auth</em> will only do
+ authentication (username/password); <em>auth-int</em> is
+ authentication plus integrity checking (an MD5 hash of the
+ entity is also computed and checked); <em>none</em> will cause
+ the module to use the old RFC-2069 digest algorithm (which does
+ not include integrity checking). Both <em>auth</em> and
+ <em>auth-int</em> may be specified, in which the case the
+ browser will choose which of these to use. <em>none</em> should
+ only be used if the browser for some reason does not like the
+ challenge it receives otherwise.</p>
+
+ <p><strong><em>auth-int</em> is not implemented
+ yet</strong>.</p>
+ <hr />
+
+ <h2><a id="authdigestnoncelifetime"
+ name="authdigestnoncelifetime">AuthDigestNonceLifetime</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestNonceLifetime
+ <em>seconds</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDigestNonceLifetime 300</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p>The AuthDigestNonceLifetime directive controls how long the
+ server nonce is valid. When the client contacts the server
+ using an expired nonce the server will send back a 401 with
+ <code>stale=true</code>. If <em>seconds</em> is greater than 0
+ then it specifies the amount of time for which the nonce is
+ valid; this should probably never be set to less than 10
+ seconds. If <em>seconds</em> is less than 0 then the nonce
+ never expires. <!-- Not implemented yet
+ If <EM>seconds</EM> is 0 then the nonce may be used exactly once
+ by the client. Note that while one-time-nonces provide higher security
+ against replay attacks, they also have significant performance
+ implications, as the browser cannot pipeline or multiple connections
+ for the requests. Because browsers cannot easily detect that
+ one-time-nonces are being used, this may lead to browsers trying to
+ pipeline requests and receiving 401 responses for all but the first
+ request, requiring the browser to resend the requests. Note also that
+ the protection against reply attacks only makes sense for dynamically
+ generated content and things like POST requests; for static content
+ the attacker may already have the complete response, so one-time-nonces
+ do not make sense here.
+ -->
+ </p>
+ <hr />
+
+ <h2><a id="authdigestnonceformat"
+ name="authdigestnonceformat">AuthDigestNonceFormat</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestNonceFormat
+ <em>???</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDigestNonceFormat ???</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p><strong>Not implemented yet.</strong> <!--
+ <P>The AuthDigestNonceFormat directive determines how the nonce is
+ generated.
+ -->
+ </p>
+ <hr />
+
+ <h2><a id="authdigestnccheck"
+ name="authdigestnccheck">AuthDigestNcCheck</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestNcCheck
+ On|Off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDigestNcCheck Off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p><strong>Not implemented yet.</strong> <!--
+ <P>The AuthDigestNcCheck directive enables or disables the checking of the
+ nonce-count sent by the server.
+
+ <P>While recommended from a security standpoint, turning this directive
+ On has one important performance implication. To check the nonce-count
+ *all* requests (which have an Authorization header, irrespective of
+ whether they require digest authentication) must be serialized through
+ a critical section. If the server is handling a large number of
+ requests which contain the Authorization header then this may noticeably
+ impact performance.
+ -->
+ </p>
+ <hr />
+
+ <h2><a id="authdigestalgorithm"
+ name="authdigestalgorithm">AuthDigestAlgorithm</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestAlgorithm
+ MD5|MD5-sess<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>AuthDigestAlgorithm MD5</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p>The AuthDigestAlgorithm directive selects the algorithm used
+ to calculate the challenge and response hashes.</p>
+
+ <p><strong><em>MD5-sess</em> is not correctly implemented
+ yet</strong>. <!--
+ <P>To use <EM>MD5-sess</EM> you must first code up the
+ <VAR>get_userpw_hash()</VAR> function in <VAR>mod_auth_digest.c</VAR> .
+ -->
+ </p>
+ <hr />
+
+ <h2><a id="authdigestdomain"
+ name="authdigestdomain">AuthDigestDomain</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AuthDigestDomain
+ <em>URI</em> [<em>URI</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> AuthConfig<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_auth_digest
+
+ <p>The AuthDigestDomain directive allows you to specify one or
+ more URIs which are in the same protection space (i.e. use the
+ same realm and username/password info). The specified URIs are
+ prefixes, i.e. the client will assume that all URIs "below"
+ these are also protected by the same username/password. The
+ URIs may be either absolute URIs (i.e. inluding a scheme, host,
+ port, etc) or relative URIs.</p>
+
+ <p>This directive <em>should</em> always be specified and
+ contain at least the (set of) root URI(s) for this space.
+ Omitting to do so will cause the client to send the
+ Authorization header for <em>every request</em> sent to this
+ server. Apart from increasing the size of the request, it may
+ also have a detrimental effect on performance if
+ "AuthDigestNcCheck" is on.</p>
+
+ <p>The URIs specified can also point to different servers, in
+ which case clients (which understand this) will then share
+ username/password info across multiple servers without
+ prompting the user each time.
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_autoindex.html b/docs/manual/mod/mod_autoindex.html
index b06ba0570b..a5635161e9 100644
--- a/docs/manual/mod/mod_autoindex.html
+++ b/docs/manual/mod/mod_autoindex.html
@@ -1,152 +1,185 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_autoindex</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_autoindex</H1>
-
-The module mod_autoindex generates directory indexes, automatically, similar to
-the Unix <em>ls</em> command or the Win32 <em>dir</em> shell command.
-<P>
-
-Automatic index generation must be enabled with by the <CODE>Options</CODE>
-directive's <CODE><I>[+]</I>Indexes</CODE> option. See the
-<A HREF="core.html#options"><CODE>Options</CODE></a> directive for
-more details.
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_autoindex.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> autoindex_module
-</P>
-
-
-<H2>Summary</H2>
-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="mod_dir.html#directoryindex">DirectoryIndex</A> directive sets
-the name of this file.
-This is controlled by <A HREF="mod_dir.html"><CODE>mod_dir</CODE></A>.
-
-<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. These
-are controlled by <CODE>mod_autoindex</CODE>.
-</UL>
-The two functions are separated so that you can completely remove
-(or replace) automatic index generation should you want to.
-<P>
-Automatic index generation is enabled with using
-<CODE>Options +Indexes</CODE>. See the
-<A HREF="core.html#options"><CODE>Options</CODE></a> directive for
-more details.
-<P>
-If the <SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>
-option is given with the <A HREF="#indexoptions"><SAMP>IndexOptions</SAMP></A>
-directive, the column headers are links that control the
-order of the display. If you select a header link, the
-listing will be regenerated, sorted by the values in that
-column. Selecting the same header repeatedly toggles
-between ascending and descending order. These column header links are
-suppressed with <A HREF="#indexoptions">IndexOptions</A> directive's
-<SAMP>SuppressColumnSorting</SAMP> option.
-</P>
-<P>
-Note that when the display is sorted by &quot;Size&quot;,
-it's the <EM>actual</EM> size of the files that's used,
-not the displayed value - so a 1010-byte file will
-always be displayed before a 1011-byte file (if in ascending
-order) even though they both are shown as &quot;1K&quot;.
-</P>
-
-<H2>Directives</H2>
-
-<UL>
-<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="#headername">HeaderName</A>
-<LI><A HREF="#indexignore">IndexIgnore</A>
-<LI><A HREF="#indexoptions">IndexOptions</A>
-<LI><A HREF="#indexorderdefault">IndexOrderDefault</A>
-<LI><A HREF="#readmename">ReadmeName</A>
-</UL>
-
-<p>See also: <A HREF="core.html#options">Options</A> and <A
-HREF="mod_dir.html#directoryindex">DirectoryIndex</A>.</p>
-
-<H2>Autoindex Request Query Arguments</H2>
-
-<P>Apache 2.0.23 reorganized the Query Arguments for Column Sorting, and introduced
-an entire group of new query options. To effectively eliminate all client control
-over the output, the <SAMP><A HREF="#indexoptions:ignoreclient">IndexOptions
-IgnoreClient</A></SAMP> option was introduced.</P>
-
-<P>The column sorting headers themselves are self-referencing hyperlinks that add the
-sort query options shown below. Any option below may be added to any request for the
-directory resource.
-
-<ul>
-<li><SAMP>C=N</SAMP> sorts the directory by file name
-<li><SAMP>C=M</SAMP> sorts the directory by last-modified date, then file name
-<li><SAMP>C=S</SAMP> sorts the directory by size, then file name
-<li><SAMP>C=D</SAMP> sorts the directory by description, then file name<br />&nbsp;
-
-<li><SAMP>O=A</SAMP> sorts the listing in Ascending Order
-<li><SAMP>O=D</SAMP> sorts the listing in Descending Order<br />&nbsp;
-
-<li><SAMP>F=0</SAMP> formats the listing as a simple list (not FancyIndexed)
-<li><SAMP>F=1</SAMP> formats the listing as a FancyIndexed list
-<li><SAMP>F=2</SAMP> formats the listing as an HTMLTable FancyIndexed list<br />&nbsp;
-
-<li><SAMP>V=0</SAMP> disables version sorting
-<li><SAMP>V=1</SAMP> enables version sorting<br />&nbsp;
-
-<li><SAMP>P=<EM>pattern</EM></SAMP> lists only files matching the given <EM>pattern</EM>
-</ul>
-
-<P>Note that the 'P'attern query argument is tested <em>after</em> the usual IndexIgnore
-directives are processed, and all file names are still subjected to the same criteria
-as any other autoindex listing. The Query Arguments parser in mod_autoindex will stop
-abruptly when an unrecognized option is encountered. The Query Arguments must be well
-formed, according to the table above.</P>
-
-<P>The simple example below, which can be clipped and saved in a header.html file,
-illustrates these query options. Note that the unknown "X" argument, for the
-submit button, is listed last to assure the arguments are all parsed before
-mod_autoindex encounters the X=Go input.</P>
-
-<pre>&lt;FORM METHOD="GET"&gt;
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_autoindex</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_autoindex</h1>
+ The module mod_autoindex generates directory indexes,
+ automatically, similar to the Unix <em>ls</em> command or the
+ Win32 <em>dir</em> shell command.
+
+ <p>Automatic index generation must be enabled with by the
+ <code>Options</code> directive's <code><i>[+]</i>Indexes</code>
+ option. See the <a
+ href="core.html#options"><code>Options</code></a> directive for
+ more details.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_autoindex.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ autoindex_module</p>
+
+ <h2>Summary</h2>
+ 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="mod_dir.html#directoryindex">DirectoryIndex</a>
+ directive sets the name of this file. This is controlled by
+ <a href="mod_dir.html"><code>mod_dir</code></a>.</li>
+
+ <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. These are controlled by
+ <code>mod_autoindex</code>.</li>
+ </ul>
+ The two functions are separated so that you can completely
+ remove (or replace) automatic index generation should you want
+ to.
+
+ <p>Automatic index generation is enabled with using
+ <code>Options +Indexes</code>. See the <a
+ href="core.html#options"><code>Options</code></a> directive for
+ more details.</p>
+
+ <p>If the <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>
+ option is given with the <a
+ href="#indexoptions"><samp>IndexOptions</samp></a> directive,
+ the column headers are links that control the order of the
+ display. If you select a header link, the listing will be
+ regenerated, sorted by the values in that column. Selecting the
+ same header repeatedly toggles between ascending and descending
+ order. These column header links are suppressed with <a
+ href="#indexoptions">IndexOptions</a> directive's
+ <samp>SuppressColumnSorting</samp> option.</p>
+
+ <p>Note that when the display is sorted by "Size", it's the
+ <em>actual</em> size of the files that's used, not the
+ displayed value - so a 1010-byte file will always be displayed
+ before a 1011-byte file (if in ascending order) even though
+ they both are shown as "1K".</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#addalt">AddAlt</a></li>
+
+ <li><a href="#addaltbyencoding">AddAltByEncoding</a></li>
+
+ <li><a href="#addaltbytype">AddAltByType</a></li>
+
+ <li><a href="#adddescription">AddDescription</a></li>
+
+ <li><a href="#addicon">AddIcon</a></li>
+
+ <li><a href="#addiconbyencoding">AddIconByEncoding</a></li>
+
+ <li><a href="#addiconbytype">AddIconByType</a></li>
+
+ <li><a href="#defaulticon">DefaultIcon</a></li>
+
+ <li><a href="#headername">HeaderName</a></li>
+
+ <li><a href="#indexignore">IndexIgnore</a></li>
+
+ <li><a href="#indexoptions">IndexOptions</a></li>
+
+ <li><a href="#indexorderdefault">IndexOrderDefault</a></li>
+
+ <li><a href="#readmename">ReadmeName</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#options">Options</a> and <a
+ href="mod_dir.html#directoryindex">DirectoryIndex</a>.</p>
+
+ <h2>Autoindex Request Query Arguments</h2>
+
+ <p>Apache 2.0.23 reorganized the Query Arguments for Column
+ Sorting, and introduced an entire group of new query options.
+ To effectively eliminate all client control over the output,
+ the <samp><a href="#indexoptions:ignoreclient">IndexOptions
+ IgnoreClient</a></samp> option was introduced.</p>
+
+ <p>The column sorting headers themselves are self-referencing
+ hyperlinks that add the sort query options shown below. Any
+ option below may be added to any request for the directory
+ resource.</p>
+
+ <ul>
+ <li><samp>C=N</samp> sorts the directory by file name</li>
+
+ <li><samp>C=M</samp> sorts the directory by last-modified
+ date, then file name</li>
+
+ <li><samp>C=S</samp> sorts the directory by size, then file
+ name</li>
+
+ <li><samp>C=D</samp> sorts the directory by description, then
+ file name<br />
+ &nbsp;</li>
+
+ <li><samp>O=A</samp> sorts the listing in Ascending
+ Order</li>
+
+ <li><samp>O=D</samp> sorts the listing in Descending
+ Order<br />
+ &nbsp;</li>
+
+ <li><samp>F=0</samp> formats the listing as a simple list
+ (not FancyIndexed)</li>
+
+ <li><samp>F=1</samp> formats the listing as a FancyIndexed
+ list</li>
+
+ <li><samp>F=2</samp> formats the listing as an HTMLTable
+ FancyIndexed list<br />
+ &nbsp;</li>
+
+ <li><samp>V=0</samp> disables version sorting</li>
+
+ <li><samp>V=1</samp> enables version sorting<br />
+ &nbsp;</li>
+
+ <li><samp>P=<em>pattern</em></samp> lists only files matching
+ the given <em>pattern</em></li>
+ </ul>
+
+ <p>Note that the 'P'attern query argument is tested
+ <em>after</em> the usual IndexIgnore directives are processed,
+ and all file names are still subjected to the same criteria as
+ any other autoindex listing. The Query Arguments parser in
+ mod_autoindex will stop abruptly when an unrecognized option is
+ encountered. The Query Arguments must be well formed, according
+ to the table above.</p>
+
+ <p>The simple example below, which can be clipped and saved in
+ a header.html file, illustrates these query options. Note that
+ the unknown "X" argument, for the submit button, is listed last
+ to assure the arguments are all parsed before mod_autoindex
+ encounters the X=Go input.</p>
+<pre>
+&lt;FORM METHOD="GET"&gt;
Show me a &lt;SELECT NAME="F"&gt;
&lt;OPTION VALUE="0"&gt; Plain list
&lt;OPTION VALUE="1" SELECTED&gt; Fancy list
@@ -170,781 +203,792 @@ mod_autoindex encounters the X=Go input.</P>
&lt;INPUT TYPE="submit" NAME="X" VALUE="Go"&gt;
&lt;/FORM&gt;
</pre>
-
-<HR>
-
-<H2><A NAME="addalt">AddAlt</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddAlt} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddAlt <EM>string file</em>
-[<em>file</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-<EM>AddAlt</EM> provides the alternate text to display for a file, instead of an icon,
-for <SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>. <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, has image loading
-disabled, or fails to retrieve the icon.
-
-<HR>
-<H2><A NAME="addaltbyencoding">AddAltByEncoding</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddAltByEncoding} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddAltByEncoding <EM>string MIME-encoding</em>
- [<em>MIME-encoding</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-<EM>AddAltByEncoding</EM> provides the alternate text to display for a file, instead
-of an icon, for <SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>.
-<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, has image loading disabled, or
-fails to retrieve the icon.
-
-<HR>
-<H2><A NAME="addaltbytype">AddAltByType</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddAltByType} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddAltByType <EM>string MIME-type</em>
- [<em>MIME-type</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-<EM>AddAltByType</EM> sets the alternate text to display for a file, instead of
-an icon, for <SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>.
-<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, has image loading
-disabled, or fails to retrieve the icon.
-
-<HR>
-
-<H2><A NAME="adddescription">AddDescription</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddDescription} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddDescription <EM>string file</em>
- [<em>file</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-This sets the description to display for a file, for
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>.
-<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>
-The typical, default description field is 23 bytes wide. 6 more bytes are
-added by the <CODE>IndexOptions&nbsp;SuppressIcon</CODE> option, 7 bytes are
-added by the <CODE>IndexOptions&nbsp;SuppressSize</CODE> option, and 19 bytes
-are added by the <CODE>IndexOptions&nbsp;SuppressLastModified</CODE> option.
-Therefore, the widest default the description column is ever assigned is 55 bytes.
-<P>
-See the <a href="#indexoptions:descriptionwidth">DescriptionWidth</a>
-<samp>IndexOptions</samp> keyword for details on overriding the size of this
-column, or allowing descriptions of unlimited length.
-</P>
-<blockquote>
-<b>Caution:</b> Descriptive text defined with <samp>AddDescription</samp>
-may contain HTML markup, such as tags and character entities. If the
-width of the description column should happen to truncate a tagged
-element (such as cutting off the end of a bolded phrase), the results
-may affect the rest of the directory listing.
-</blockquote>
-<HR>
-
-<H2><A NAME="addicon">AddIcon</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddIcon} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddIcon <EM>icon name</em>
- [<em>name</em>] ...</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-This sets the icon to display next to a file ending in <EM>name</EM> for
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>. <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>
-
-<H2><A NAME="addiconbyencoding">AddIconByEncoding</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddIconByEncoding} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddIconByEncoding <EM>icon MIME-encoding</em>
- [<em>MIME-encoding</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-This sets the icon to display next to files with
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>.
-<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>
-
-<H2><A NAME="addiconbytype">AddIconByType</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt AddIconByType} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddIconByType <EM>icon MIME-type</em>
- [<em>MIME-type</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-This sets the icon to display next to files of type <EM>MIME-type</EM> for
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>. <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>
-
-<H2><A NAME="defaulticon">DefaultIcon</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt DefaultIcon} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> DefaultIcon <EM>url</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<P>
-
-The DefaultIcon directive sets the icon to display for files when no
-specific icon is known, for
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP>.
-<EM>Url</EM> is a (%-escaped) relative URL to the icon. Examples:
-<BLOCKQUOTE><CODE>
-DefaultIcon /icon/unknown.xbm
-</CODE></BLOCKQUOTE><P><HR>
-
-<H2><A NAME="fancyindexing">FancyIndexing</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt FancyIndexing} directive&gt; -->
-<A
- HREF="directive-dict.html#Deprecated"
- REL="Help"
-><STRONG>Deprecated:</STRONG></A> See <A HREF="#indexoptions">IndexOptions</A>
- <SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP><BR>
-<P>
-The FancyIndexing directive was replaced by the
-<SAMP><A HREF="#indexoptions:fancyindexing">FancyIndexing</A></SAMP> option to the
-<A HREF="#indexoptions">IndexOptions</A> directive, and is no longer supported
-in Apache 2.0.
-</P>
-<HR>
-
-<H2><A NAME="headername">HeaderName</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt HeaderName} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> HeaderName <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> behavior changed in version 1.3.7;
- see text
-
-<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.
-</P>
-<BLOCKQUOTE><STRONG>Changes with Apache 1.3.7:</STRONG>
-Both HeaderName and <A HREF="#readmename">ReadmeName</A> now treat <EM>Filename</EM>
-as a URI path relative to the one used to access the directory being indexed.
-<EM>Filename</EM> must resolve to a document with a major content type of
-"<SAMP>text/*</SAMP>" (<EM>e.g.</EM>, <SAMP>text/html</SAMP>, <SAMP>text/plain</SAMP>,
-<EM>etc.</EM>). This means that <EM>filename</EM> may refer to a CGI script if the
-script's actual file type (as opposed to its output) is marked as
-<SAMP>text/html</SAMP> such as with a directive like:
-<PRE>
+ <hr />
+
+ <h2><a id="addalt" name="addalt">AddAlt</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddAlt} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddAlt <em>string
+ file</em> [<em>file</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p><em>AddAlt</em> provides the alternate text to display for a
+ file, instead of an icon, for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <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>"</code>).
+ This alternate text is displayed if the client is
+ image-incapable, has image loading disabled, or fails to
+ retrieve the icon.</p>
+ <hr />
+
+ <h2><a id="addaltbyencoding"
+ name="addaltbyencoding">AddAltByEncoding</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddAltByEncoding} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddAltByEncoding
+ <em>string MIME-encoding</em> [<em>MIME-encoding</em>]
+ ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p><em>AddAltByEncoding</em> provides the alternate text to
+ display for a file, instead of an icon, for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <em>MIME-encoding</em> is a valid content-encoding, such as
+ <samp>x-compress</samp>. <em>String</em> is enclosed in double
+ quotes (<code>"</code>). This alternate text is displayed if
+ the client is image-incapable, has image loading disabled, or
+ fails to retrieve the icon.</p>
+ <hr />
+
+ <h2><a id="addaltbytype" name="addaltbytype">AddAltByType</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddAltByType} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddAltByType <em>string
+ MIME-type</em> [<em>MIME-type</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p><em>AddAltByType</em> sets the alternate text to display for
+ a file, instead of an icon, for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <em>MIME-type</em> is a valid content-type, such as
+ <samp>text/html</samp>. <em>String</em> is enclosed in double
+ quotes (<code>"</code>). This alternate text is displayed if
+ the client is image-incapable, has image loading disabled, or
+ fails to retrieve the icon.</p>
+ <hr />
+
+ <h2><a id="adddescription"
+ name="adddescription">AddDescription</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddDescription} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddDescription
+ <em>string file</em> [<em>file</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p>This sets the description to display for a file, for
+ <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <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>"</code>).
+ Example:</p>
+
+ <blockquote>
+ <code>AddDescription "The planet Mars"
+ /web/pics/mars.gif</code>
+ </blockquote>
+
+ <p>The typical, default description field is 23 bytes wide. 6
+ more bytes are added by the
+ <code>IndexOptions&nbsp;SuppressIcon</code> option, 7 bytes are
+ added by the <code>IndexOptions&nbsp;SuppressSize</code>
+ option, and 19 bytes are added by the
+ <code>IndexOptions&nbsp;SuppressLastModified</code> option.
+ Therefore, the widest default the description column is ever
+ assigned is 55 bytes.</p>
+
+ <p>See the <a
+ href="#indexoptions:descriptionwidth">DescriptionWidth</a>
+ <samp>IndexOptions</samp> keyword for details on overriding the
+ size of this column, or allowing descriptions of unlimited
+ length.</p>
+
+ <blockquote>
+ <b>Caution:</b> Descriptive text defined with
+ <samp>AddDescription</samp> may contain HTML markup, such as
+ tags and character entities. If the width of the description
+ column should happen to truncate a tagged element (such as
+ cutting off the end of a bolded phrase), the results may
+ affect the rest of the directory listing.
+ </blockquote>
+ <hr />
+
+ <h2><a id="addicon" name="addicon">AddIcon</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddIcon} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddIcon <em>icon
+ name</em> [<em>name</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p>This sets the icon to display next to a file ending in
+ <em>name</em> for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <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>
+
+ <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:</p>
+
+ <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.
+ <hr />
+
+ <h2><a id="addiconbyencoding"
+ name="addiconbyencoding">AddIconByEncoding</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddIconByEncoding} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddIconByEncoding
+ <em>icon MIME-encoding</em> [<em>MIME-encoding</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p>This sets the icon to display next to files with <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <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>
+
+ <p><em>Mime-encoding</em> is a wildcard expression matching
+ required the content-encoding. Examples:</p>
+
+ <blockquote>
+ <code>AddIconByEncoding /icons/compress.xbm x-compress</code>
+ </blockquote>
+ <hr />
+
+ <h2><a id="addiconbytype"
+ name="addiconbytype">AddIconByType</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddIconByType} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddIconByType <em>icon
+ MIME-type</em> [<em>MIME-type</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p>This sets the icon to display next to files of type
+ <em>MIME-type</em> for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <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>
+
+ <p><em>Mime-type</em> is a wildcard expression matching
+ required the mime types. Examples:</p>
+
+ <blockquote>
+ <code>AddIconByType (IMG,/icons/image.xbm) image/*</code>
+ </blockquote>
+ <hr />
+
+ <h2><a id="defaulticon" name="defaulticon">DefaultIcon</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt DefaultIcon} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> DefaultIcon
+ <em>url</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <p>The DefaultIcon directive sets the icon to display for files
+ when no specific icon is known, for <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>.
+ <em>Url</em> is a (%-escaped) relative URL to the icon.
+ Examples:</p>
+
+ <blockquote>
+ <code>DefaultIcon /icon/unknown.xbm</code>
+ </blockquote>
+ <hr />
+
+ <h2><a id="fancyindexing"
+ name="fancyindexing">FancyIndexing</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt FancyIndexing} directive&gt; -->
+ <a href="directive-dict.html#Deprecated"
+ rel="Help"><strong>Deprecated:</strong></a> See <a
+ href="#indexoptions">IndexOptions</a> <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp><br />
+
+
+ <p>The FancyIndexing directive was replaced by the <samp><a
+ href="#indexoptions:fancyindexing">FancyIndexing</a></samp>
+ option to the <a href="#indexoptions">IndexOptions</a>
+ directive, and is no longer supported in Apache 2.0.</p>
+ <hr />
+
+ <h2><a id="headername" name="headername">HeaderName</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt HeaderName} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> HeaderName
+ <em>filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex <br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> behavior changed
+ in version 1.3.7; see text
+
+ <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.</p>
+
+ <blockquote>
+ <strong>Changes with Apache 1.3.7:</strong> Both HeaderName
+ and <a href="#readmename">ReadmeName</a> now treat
+ <em>Filename</em> as a URI path relative to the one used to
+ access the directory being indexed. <em>Filename</em> must
+ resolve to a document with a major content type of
+ "<samp>text/*</samp>" (<em>e.g.</em>, <samp>text/html</samp>,
+ <samp>text/plain</samp>, <em>etc.</em>). This means that
+ <em>filename</em> may refer to a CGI script if the script's
+ actual file type (as opposed to its output) is marked as
+ <samp>text/html</samp> such as with a directive like:
+<pre>
AddType text/html .cgi
-</PRE>
-<A HREF="../content-negotiation.html">Content negotiation</A>
-will be performed if the <SAMP>MultiViews</SAMP>
-<A HREF="core.html#options">option</A> is enabled.
-If <EM>filename</EM> resolves to a static <SAMP>text/html</SAMP> document
-(not a CGI script) and the
-<SAMP>Includes</SAMP> <A HREF="core.html#options">option</A> is enabled,
-the file will be processed for server-side includes (see the
-<A HREF="mod_include.html"><SAMP>mod_include</SAMP></A> documentation).
-</BLOCKQUOTE>
-<P>
-If the file specified by <SAMP>HeaderName</SAMP> contains the
-beginnings of an HTML document (&lt;HTML&gt;, &lt;HEAD&gt;, etc) then
-you will probably want to set <A
-HREF="#indexoptions:suppresshtmlpreamble"><SAMP>IndexOptions
-+SuppressHTMLPreamble</SAMP></A>, so that these tags are not
-repeated.
-<P>
-See also <A HREF="#readmename">ReadmeName</A>.
-<P><HR>
-
-<H2><A NAME="indexignore">IndexIgnore</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt IndexIgnore} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> IndexIgnore <EM>file</em> [<em>file</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex<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>
-
-<H2><A NAME="indexoptions">IndexOptions</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt IndexOptions} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> IndexOptions [+|-]<em>option</em>
- [[+|-]<em>option</em>] ... (Apache 1.3.3 and later)
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex
-<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> '+/-' syntax and merging of multiple
- <SAMP>IndexOptions</SAMP> directives is only available with
- Apache 1.3.3 and later; specific options are listed below.
-<P>
-
-The IndexOptions directive specifies the behavior of the directory indexing.
-<EM>Option</EM> can be one of
-<DL>
-<dt><a name="indexoptions:descriptionwidth">DescriptionWidth=[<em>n</em> | *]
- (<em>Apache 1.3.10 or 2.0.23 and later</em>)</a></dt>
-<dd>The <samp>DescriptionWidth</samp> keyword allows you to specify the
-width of the description column in characters.</dd>
-<dd><samp>-DescriptionWidth</samp> (or unset) allows mod_autoindex to calculate
-the best width.</dd>
-<dd><samp>DescriptionWidth=n</samp> fixes the column width to n bytes wide.</dd>
-<dd><samp>DescriptionWidth=*</samp> grows the column to the width necessary to
-accommodate the longest description string.</dd>
-<dd><b>See the section on <a href="#adddescription"><samp>AddDescription</samp></a>
-for dangers inherent in truncating descriptions.</b></dd>
-<DT><A NAME="indexoptions:fancyindexing">FancyIndexing</A>
-<DD><!--%plaintext &lt;?INDEX {\tt FancyIndexing} index option&gt; -->
-This turns on fancy indexing of directories.
-<dt><a name="indexoptions:foldersfirst">FoldersFirst
- (<i>Apache 1.3.10 or 2.0.23 and later</i>)</a></dt>
-<dd>
-If this option is enabled, subdirectory listings
-will <i>always</i> appear first, followed by normal files in the
-directory. The listing is basically broken into two components,
-the files and the subdirectories, and each is sorted separately and
-then displayed subdirectories-first. For instance, if the sort order
-is descending by name, and <samp>FoldersFirst</samp> is enabled,
-subdirectory <samp>Zed</samp> will be listed before subdirectory
-<samp>Beta</samp>, which will be listed before normal files
-<samp>Gamma</samp> and <samp>Alpha</samp>.
-<b>This option only has an effect if
-<a href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a>
-is also enabled.</b></dd>
-<DT><A NAME="indexoptions:htmltable">HTMLTable</A>
- <i>(Experimental, Apache 2.0.23 and later)</i>
-<DD><!--%plaintext &lt;?INDEX {\tt HTMLTable} index option&gt; -->
-This experimental option with FancyIndexing constructs a simple table for the
-fancy directory listing. Note this will confuse older browsers. It is particularly
-necessary if file names or description text will alternate between left-to-right
-and right-to-left reading order, as can happen on WinNT or other utf-8
-enabled platforms.
-<DT><A NAME="indexoptions:iconsarelinks">IconsAreLinks</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt IconsAreLinks} index option&gt; -->
-This makes the icons part of the anchor for the filename, for
-fancy indexing.
-<DT><A NAME="indexoptions:iconheight">IconHeight[=pixels] (<EM>Apache 1.3 and later</EM>)</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt IconHeight} index option&gt; -->
-Presence of this option, when used with IconWidth, will cause the server
-to include <SAMP>HEIGHT</SAMP> and <SAMP>WIDTH</SAMP> attributes in the
-<SAMP>IMG</SAMP> tag for the file icon. This allows browser to
-precalculate the page layout without having to wait until all the
-images have been loaded. If no value is given for the option, it
-defaults to the standard height of the icons supplied with the Apache
-software.
-<DT><A NAME="indexoptions:iconwidth">IconWidth[=pixels] (<EM>Apache 1.3 and later</EM>)</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt IconWidth} index option&gt; -->
-Presence of this option, when used with IconHeight, will cause the server
-to include <SAMP>HEIGHT</SAMP> and <SAMP>WIDTH</SAMP> attributes in the
-<SAMP>IMG</SAMP> tag for the file icon. This allows browser to
-precalculate the page layout without having to wait until all the
-images have been loaded. If no value is given for the option, it
-defaults to the standard width of the icons supplied with the Apache
-software.
-<DT><A NAME="indexoptions:ignoreclient">IgnoreClient</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt IgnoreClient} index option&gt; -->
-This option causes mod_autoindex to ignore all query variables from the
-client, including sort order (implies <SAMP><A
- HREF="#indexoptions:suppresscolumnsorting">SuppressColumnSorting</A></SAMP>.)
-<DT><A NAME="indexoptions:namewidth">NameWidth=[<EM>n</EM> | *] (<EM>Apache 1.3.2 and later</EM>)</A>
-<DD>
-The NameWidth keyword allows you to specify the width of the
-filename column in bytes.
-<dd><samp>-NameWidth</samp> (or unset) allows mod_autoindex to calculate
-the best width.</dd>
-<dd><samp>NameWidth=n</samp> fixes the column width to n bytes wide.</dd>
-<dd><samp>NameWidth=*</samp> grows the column to the necessary width.</dd>
-<DT><A NAME="indexoptions:scanhtmltitles">ScanHTMLTitles</A>
-<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><A NAME="indexoptions:suppresscolumnsorting">SuppressColumnSorting</A>
- (<EM>Apache 1.3 and later</EM>)
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressColumnSorting} index option&gt; -->
-If specified, Apache will not make the column headings in a FancyIndexed
-directory listing into links for sorting. The default behavior is
-for them to be links; selecting the column heading will sort the directory
-listing by the values in that column. <STRONG>Prior to Apache 2.0.23, this
-also disabled parsing the Query Arguments for the sort string.</STRONG>
-That behavior is now controlled by <A HREF="#indexoptions:ignoreclient"
- >IndexOptions IgnoreClient</A> in Apache 2.0.23.
-<DT><A NAME="indexoptions:suppressdescription">SuppressDescription</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressDescription} index option&gt; -->
-This will suppress the file description in fancy indexing listings.
-By default, no file descriptions are defined, and so the use of this option
-will regain 23 characters of screen space to use for something else.
-See <A HREF="#adddescription"><samp>AddDescription</samp></A>
-for information about setting the file description. See also the
-<A
-HREF="#indexoptions:descriptionwidth"><samp>DescriptionWidth</samp></A>
-index option to limit the size of the description column.
-
-<DT><A NAME="indexoptions:suppresshtmlpreamble">SuppressHTMLPreamble</A>
- (<EM>Apache 1.3 and later</EM>)
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressHTMLPreamble} index option&gt; -->
-If the directory actually contains a file specified by the
-<A
- HREF="#headername"
->HeaderName</A>
-directive, the module usually includes the contents of the file
-after a standard HTML preamble (&lt;HTML&gt;, &lt;HEAD&gt;, <EM>et
-cetera</EM>). The SuppressHTMLPreamble option disables this behaviour,
-causing the module to start the display with the header file contents.
-The header file must contain appropriate HTML instructions in this case.
-If there is no header file, the preamble is generated as usual.
-<DT><A NAME="indexoptions:suppressicon">SuppressIcon</A>
- (<EM>Apache 2.0.23 and later</EM>)
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressIcon} index option&gt; -->
-This will suppress the icon in fancy indexing listings. Combining
-both <EM>SuppressIcon</EM> and <EM>SuppressRules</EM> yields proper
-HTML 3.2 output, which by the final specification prohibits IMG and HR
-tags from the PRE block (used to format FancyIndexed listings.)
-<DT><A NAME="indexoptions:suppresslastmodified">SuppressLastModified</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressLastModified} index option&gt; -->
-This will suppress the display of the last modification date, in fancy
-indexing listings.
-<DT><A NAME="indexoptions:suppressrules">SuppressRules</A>
- (<EM>Apache 2.0.23 and later</EM>)
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressRules} index option&gt; -->
-This will suppress the horizontal rule lines (HR tags) in directory listings.
-Combining both <EM>SuppressIcon</EM> and <EM>SuppressRules</EM> yeilds proper
-HTML 3.2 output, which by the final specification prohibits IMG and HR tags
-from the PRE block (used to format FancyIndexed listings.)
-<DT><A NAME="indexoptions:suppresssize">SuppressSize</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt SuppressSize} index option&gt; -->
-This will suppress the file size in fancy indexing listings.
-<DT><A NAME="indexoptions:trackmodified">TrackModified
-(<EM>Apache 1.3.15 or 2.0.23 and later</EM>)</A>
-<DD>
-<!--%plaintext &lt;?INDEX {\tt TrackModified} index option&gt; -->
-This returns the Last-Modified and ETag values for the listed directory
-in the HTTP header. It is only valid if the operating system and file
-system return appropriate stat() results. Some Unix systems do so, as
-do OS2's JFS and Win32's NTFS volumes. OS2 and Win32 FAT volumes,
-for example, do not. Once this feature is enabled, the client or proxy
-can track changes to the list of files when they perform a HEAD request.
-Note some operating systems correctly track new and removed files, but
-do not track changes for sizes or dates of the files within the directory.
-<STRONG>Changes to the size or date stamp of an existing file will not
-update the Last-Modified header on all Unix platforms.</STRONG> If this
-is a concern, leave this option disabled.
-<DT><A NAME="indexoptions:versionsort">VersionSort (<EM>Apache 2.0a3 and later</EM>)</A>
-<DD>
-The VersionSort keyword causes files containing version numbers to
-sort in a natural way. Strings are sorted as usual, except that
-substrings of digits in the name and description are compared
-according to their numeric value.
-
-For example:
-<BLOCKQUOTE><pre>
+</pre>
+ <a href="../content-negotiation.html">Content negotiation</a>
+ will be performed if the <samp>MultiViews</samp> <a
+ href="core.html#options">option</a> is enabled. If
+ <em>filename</em> resolves to a static <samp>text/html</samp>
+ document (not a CGI script) and the <samp>Includes</samp> <a
+ href="core.html#options">option</a> is enabled, the file will
+ be processed for server-side includes (see the <a
+ href="mod_include.html"><samp>mod_include</samp></a>
+ documentation).
+ </blockquote>
+
+ <p>If the file specified by <samp>HeaderName</samp> contains
+ the beginnings of an HTML document (&lt;HTML&gt;, &lt;HEAD&gt;,
+ etc) then you will probably want to set <a
+ href="#indexoptions:suppresshtmlpreamble"><samp>IndexOptions
+ +SuppressHTMLPreamble</samp></a>, so that these tags are not
+ repeated.</p>
+
+ <p>See also <a href="#readmename">ReadmeName</a>.</p>
+ <hr />
+
+ <h2><a id="indexignore" name="indexignore">IndexIgnore</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt IndexIgnore} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> IndexIgnore
+ <em>file</em> [<em>file</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex
+
+ <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:</p>
+
+ <blockquote>
+ <code>IndexIgnore README .htaccess *~</code>
+ </blockquote>
+ <hr />
+
+ <h2><a id="indexoptions" name="indexoptions">IndexOptions</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt IndexOptions} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> IndexOptions
+ [+|-]<em>option</em> [[+|-]<em>option</em>] ... (Apache 1.3.3
+ and later) <br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex <br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> '+/-' syntax and
+ merging of multiple <samp>IndexOptions</samp> directives is
+ only available with Apache 1.3.3 and later; specific options
+ are listed below.
+
+ <p>The IndexOptions directive specifies the behavior of the
+ directory indexing. <em>Option</em> can be one of</p>
+
+ <dl>
+ <dt><a id="indexoptions:descriptionwidth"
+ name="indexoptions:descriptionwidth">DescriptionWidth=[<em>n</em>
+ | *] (<em>Apache 1.3.10 or 2.0.23 and later</em>)</a></dt>
+
+ <dd>The <samp>DescriptionWidth</samp> keyword allows you to
+ specify the width of the description column in
+ characters.</dd>
+
+ <dd><samp>-DescriptionWidth</samp> (or unset) allows
+ mod_autoindex to calculate the best width.</dd>
+
+ <dd><samp>DescriptionWidth=n</samp> fixes the column width to
+ n bytes wide.</dd>
+
+ <dd><samp>DescriptionWidth=*</samp> grows the column to the
+ width necessary to accommodate the longest description
+ string.</dd>
+
+ <dd><b>See the section on <a
+ href="#adddescription"><samp>AddDescription</samp></a> for
+ dangers inherent in truncating descriptions.</b></dd>
+
+ <dt><a id="indexoptions:fancyindexing"
+ name="indexoptions:fancyindexing">FancyIndexing</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt FancyIndexing} index option&gt; -->
+ This turns on fancy indexing of directories.</dd>
+
+ <dt><a id="indexoptions:foldersfirst"
+ name="indexoptions:foldersfirst">FoldersFirst (<i>Apache
+ 1.3.10 or 2.0.23 and later</i>)</a></dt>
+
+ <dd>If this option is enabled, subdirectory listings will
+ <i>always</i> appear first, followed by normal files in the
+ directory. The listing is basically broken into two
+ components, the files and the subdirectories, and each is
+ sorted separately and then displayed subdirectories-first.
+ For instance, if the sort order is descending by name, and
+ <samp>FoldersFirst</samp> is enabled, subdirectory
+ <samp>Zed</samp> will be listed before subdirectory
+ <samp>Beta</samp>, which will be listed before normal files
+ <samp>Gamma</samp> and <samp>Alpha</samp>. <b>This option
+ only has an effect if <a
+ href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a>
+ is also enabled.</b></dd>
+
+ <dt><a id="indexoptions:htmltable"
+ name="indexoptions:htmltable">HTMLTable</a> <i>(Experimental,
+ Apache 2.0.23 and later)</i></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt HTMLTable} index option&gt; -->
+ This experimental option with FancyIndexing constructs a
+ simple table for the fancy directory listing. Note this will
+ confuse older browsers. It is particularly necessary if file
+ names or description text will alternate between
+ left-to-right and right-to-left reading order, as can happen
+ on WinNT or other utf-8 enabled platforms.</dd>
+
+ <dt><a id="indexoptions:iconsarelinks"
+ name="indexoptions:iconsarelinks">IconsAreLinks</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt IconsAreLinks} index option&gt; -->
+ This makes the icons part of the anchor for the filename, for
+ fancy indexing.</dd>
+
+ <dt><a id="indexoptions:iconheight"
+ name="indexoptions:iconheight">IconHeight[=pixels]
+ (<em>Apache 1.3 and later</em>)</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt IconHeight} index option&gt; -->
+ Presence of this option, when used with IconWidth, will cause
+ the server to include <samp>HEIGHT</samp> and
+ <samp>WIDTH</samp> attributes in the <samp>IMG</samp> tag for
+ the file icon. This allows browser to precalculate the page
+ layout without having to wait until all the images have been
+ loaded. If no value is given for the option, it defaults to
+ the standard height of the icons supplied with the Apache
+ software.</dd>
+
+ <dt><a id="indexoptions:iconwidth"
+ name="indexoptions:iconwidth">IconWidth[=pixels] (<em>Apache
+ 1.3 and later</em>)</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt IconWidth} index option&gt; -->
+ Presence of this option, when used with IconHeight, will
+ cause the server to include <samp>HEIGHT</samp> and
+ <samp>WIDTH</samp> attributes in the <samp>IMG</samp> tag for
+ the file icon. This allows browser to precalculate the page
+ layout without having to wait until all the images have been
+ loaded. If no value is given for the option, it defaults to
+ the standard width of the icons supplied with the Apache
+ software.</dd>
+
+ <dt><a id="indexoptions:ignoreclient"
+ name="indexoptions:ignoreclient">IgnoreClient</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt IgnoreClient} index option&gt; -->
+ This option causes mod_autoindex to ignore all query
+ variables from the client, including sort order (implies
+ <samp><a
+ href="#indexoptions:suppresscolumnsorting">SuppressColumnSorting</a></samp>.)</dd>
+
+ <dt><a id="indexoptions:namewidth"
+ name="indexoptions:namewidth">NameWidth=[<em>n</em> | *]
+ (<em>Apache 1.3.2 and later</em>)</a></dt>
+
+ <dd>The NameWidth keyword allows you to specify the width of
+ the filename column in bytes.</dd>
+
+ <dd><samp>-NameWidth</samp> (or unset) allows mod_autoindex
+ to calculate the best width.</dd>
+
+ <dd><samp>NameWidth=n</samp> fixes the column width to n
+ bytes wide.</dd>
+
+ <dd><samp>NameWidth=*</samp> grows the column to the
+ necessary width.</dd>
+
+ <dt><a id="indexoptions:scanhtmltitles"
+ name="indexoptions:scanhtmltitles">ScanHTMLTitles</a></dt>
+
+ <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.</dd>
+
+ <dt><a id="indexoptions:suppresscolumnsorting"
+ name="indexoptions:suppresscolumnsorting">SuppressColumnSorting</a>
+ (<em>Apache 1.3 and later</em>)</dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressColumnSorting} index option&gt; -->
+ If specified, Apache will not make the column headings in a
+ FancyIndexed directory listing into links for sorting. The
+ default behavior is for them to be links; selecting the
+ column heading will sort the directory listing by the values
+ in that column. <strong>Prior to Apache 2.0.23, this also
+ disabled parsing the Query Arguments for the sort
+ string.</strong> That behavior is now controlled by <a
+ href="#indexoptions:ignoreclient">IndexOptions
+ IgnoreClient</a> in Apache 2.0.23.</dd>
+
+ <dt><a id="indexoptions:suppressdescription"
+ name="indexoptions:suppressdescription">SuppressDescription</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressDescription} index option&gt; -->
+ This will suppress the file description in fancy indexing
+ listings. By default, no file descriptions are defined, and
+ so the use of this option will regain 23 characters of screen
+ space to use for something else. See <a
+ href="#adddescription"><samp>AddDescription</samp></a> for
+ information about setting the file description. See also the
+ <a
+ href="#indexoptions:descriptionwidth"><samp>DescriptionWidth</samp></a>
+ index option to limit the size of the description
+ column.</dd>
+
+ <dt><a id="indexoptions:suppresshtmlpreamble"
+ name="indexoptions:suppresshtmlpreamble">SuppressHTMLPreamble</a>
+ (<em>Apache 1.3 and later</em>)</dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressHTMLPreamble} index option&gt; -->
+ If the directory actually contains a file specified by the <a
+ href="#headername">HeaderName</a> directive, the module
+ usually includes the contents of the file after a standard
+ HTML preamble (&lt;HTML&gt;, &lt;HEAD&gt;, <em>et
+ cetera</em>). The SuppressHTMLPreamble option disables this
+ behaviour, causing the module to start the display with the
+ header file contents. The header file must contain
+ appropriate HTML instructions in this case. If there is no
+ header file, the preamble is generated as usual.</dd>
+
+ <dt><a id="indexoptions:suppressicon"
+ name="indexoptions:suppressicon">SuppressIcon</a> (<em>Apache
+ 2.0.23 and later</em>)</dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressIcon} index option&gt; -->
+ This will suppress the icon in fancy indexing listings.
+ Combining both <em>SuppressIcon</em> and
+ <em>SuppressRules</em> yields proper HTML 3.2 output, which
+ by the final specification prohibits IMG and HR tags from the
+ PRE block (used to format FancyIndexed listings.)</dd>
+
+ <dt><a id="indexoptions:suppresslastmodified"
+ name="indexoptions:suppresslastmodified">SuppressLastModified</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressLastModified} index option&gt; -->
+ This will suppress the display of the last modification date,
+ in fancy indexing listings.</dd>
+
+ <dt><a id="indexoptions:suppressrules"
+ name="indexoptions:suppressrules">SuppressRules</a>
+ (<em>Apache 2.0.23 and later</em>)</dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressRules} index option&gt; -->
+ This will suppress the horizontal rule lines (HR tags) in
+ directory listings. Combining both <em>SuppressIcon</em> and
+ <em>SuppressRules</em> yeilds proper HTML 3.2 output, which
+ by the final specification prohibits IMG and HR tags from the
+ PRE block (used to format FancyIndexed listings.)</dd>
+
+ <dt><a id="indexoptions:suppresssize"
+ name="indexoptions:suppresssize">SuppressSize</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt SuppressSize} index option&gt; -->
+ This will suppress the file size in fancy indexing
+ listings.</dd>
+
+ <dt><a id="indexoptions:trackmodified"
+ name="indexoptions:trackmodified">TrackModified (<em>Apache
+ 1.3.15 or 2.0.23 and later</em>)</a></dt>
+
+ <dd>
+ <!--%plaintext &lt;?INDEX {\tt TrackModified} index option&gt; -->
+ This returns the Last-Modified and ETag values for the listed
+ directory in the HTTP header. It is only valid if the
+ operating system and file system return appropriate stat()
+ results. Some Unix systems do so, as do OS2's JFS and Win32's
+ NTFS volumes. OS2 and Win32 FAT volumes, for example, do not.
+ Once this feature is enabled, the client or proxy can track
+ changes to the list of files when they perform a HEAD
+ request. Note some operating systems correctly track new and
+ removed files, but do not track changes for sizes or dates of
+ the files within the directory. <strong>Changes to the size
+ or date stamp of an existing file will not update the
+ Last-Modified header on all Unix platforms.</strong> If this
+ is a concern, leave this option disabled.</dd>
+
+ <dt><a id="indexoptions:versionsort"
+ name="indexoptions:versionsort">VersionSort (<em>Apache 2.0a3
+ and later</em>)</a></dt>
+
+ <dd>
+ The VersionSort keyword causes files containing version
+ numbers to sort in a natural way. Strings are sorted as
+ usual, except that substrings of digits in the name and
+ description are compared according to their numeric value.
+ For example:
+
+ <blockquote>
+<pre>
foo-1.7
foo-1.7.2
foo-1.7.12
foo-1.8.2
foo-1.8.2a
foo-1.12
-</pre></BLOCKQUOTE>
+</pre>
+ </blockquote>
+ If the number starts with a zero, then it is considered to
+ be a fraction:
-If the number starts with a zero, then it is considered to be a
- fraction:
-<BLOCKQUOTE><pre>
+ <blockquote>
+<pre>
foo-1.001
foo-1.002
foo-1.030
foo-1.04
-</pre></BLOCKQUOTE>
-<DT><H3>Incremental IndexOptions</H3>
-<DD>Apache 1.3.3 introduced some significant changes in the handling of
-<SAMP>IndexOptions</SAMP> directives. In particular,
-<BR /><BR />
-<UL>
- <LI>Multiple <SAMP>IndexOptions</SAMP> directives for a single
- directory are now merged together. The result of the example above
- will now be the equivalent of
- <CODE>IndexOptions&nbsp;FancyIndexing&nbsp;ScanHTMLTitles</CODE>.
- </LI>
- <LI>The addition of the incremental syntax (<EM>i.e.</EM>, prefixing
- keywords with '+' or '-').
- </LI>
-</UL>
-<BR />
-Whenever a '+' or '-' prefixed keyword is encountered, it is applied
-to the current <SAMP>IndexOptions</SAMP> settings (which may have been
-inherited from an upper-level directory). However, whenever an unprefixed
-keyword is processed, it clears all inherited options and any incremental
-settings encountered so far. Consider the following example:
-<BLOCKQUOTE><CODE>IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
-<BR />
-IndexOptions +SuppressSize
-<BR />
-</CODE></BLOCKQUOTE>
-The net effect is equivalent to
-<CODE>IndexOptions&nbsp;FancyIndexing&nbsp;+SuppressSize</CODE>, because
-the unprefixed <CODE>FancyIndexing</CODE> discarded the incremental
-keywords before it, but allowed them to start accumulating again
-afterward.
-<BR /><BR />
-To unconditionally set the <CODE>IndexOptions</CODE> for a
-particular directory, clearing the inherited settings, specify
-keywords without any '+' or '-' prefixes.
-</DD>
-</DL>
-
-<HR>
-
-<H2><A NAME="indexorderdefault">IndexOrderDefault</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt IndexOrderDefault} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> IndexOrderDefault
- Ascending|Descending Name|Date|Size|Description
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
-<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes
-<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex
-<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> IndexOrderDefault is only available in
-Apache 1.3.4 and later.
-
-<P>
-The <SAMP>IndexOrderDefault</SAMP> directive is used in combination with
-the <A HREF="#indexoptions:fancyindexing"><SAMP>FancyIndexing</SAMP></A>
-index option. By default, fancyindexed directory listings are displayed
-in ascending order by filename; the <SAMP>IndexOrderDefault</SAMP> allows
-you to change this initial display order.
-</P>
-<P>
-<SAMP>IndexOrderDefault</SAMP> takes two arguments. The first must be either
-<SAMP>Ascending</SAMP> or <SAMP>Descending</SAMP>, indicating the direction
-of the sort. The second argument must be one of the keywords
-<SAMP>Name</SAMP>, <SAMP>Date</SAMP>, <SAMP>Size</SAMP>, or
-<SAMP>Description</SAMP>, and identifies the primary key. The secondary
-key is <EM>always</EM> the ascending filename.
-</P>
-<P>
-You can force a directory listing to only be displayed in a particular
-order by combining this directive with the
-<A HREF="#indexoptions:suppresscolumnsorting"
-><SAMP>SuppressColumnSorting</SAMP></A> index option; this will prevent
-the client from requesting the directory listing in a different order.
-</P>
-
-<HR>
-
-<H2><A NAME="readmename">ReadmeName</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt ReadmeName} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ReadmeName <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_autoindex
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> some features only available after
- 1.3.6; see <A HREF="#headername">HeaderName</A>
-
-<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 location being indexed.
-</P>
-<P>See also <A HREF="#headername">HeaderName</A>, where this behavior is
-described in greater detail.<P>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+ </blockquote>
+ </dd>
+
+ <dd>
+ <h3>Incremental IndexOptions</h3>
+ </dd>
+
+ <dd>
+ Apache 1.3.3 introduced some significant changes in the
+ handling of <samp>IndexOptions</samp> directives. In
+ particular,<br />
+ <br />
+
+
+ <ul>
+ <li>Multiple <samp>IndexOptions</samp> directives for a
+ single directory are now merged together. The result of
+ the example above will now be the equivalent of
+ <code>IndexOptions&nbsp;FancyIndexing&nbsp;ScanHTMLTitles</code>.</li>
+
+ <li>The addition of the incremental syntax
+ (<em>i.e.</em>, prefixing keywords with '+' or '-').</li>
+ </ul>
+ <br />
+ Whenever a '+' or '-' prefixed keyword is encountered, it
+ is applied to the current <samp>IndexOptions</samp>
+ settings (which may have been inherited from an upper-level
+ directory). However, whenever an unprefixed keyword is
+ processed, it clears all inherited options and any
+ incremental settings encountered so far. Consider the
+ following example:
+
+ <blockquote>
+ <code>IndexOptions +ScanHTMLTitles -IconsAreLinks
+ FancyIndexing<br />
+ IndexOptions +SuppressSize<br />
+ </code>
+ </blockquote>
+ The net effect is equivalent to
+ <code>IndexOptions&nbsp;FancyIndexing&nbsp;+SuppressSize</code>,
+ because the unprefixed <code>FancyIndexing</code> discarded
+ the incremental keywords before it, but allowed them to
+ start accumulating again afterward.<br />
+ <br />
+ To unconditionally set the <code>IndexOptions</code> for a
+ particular directory, clearing the inherited settings,
+ specify keywords without any '+' or '-' prefixes.
+ </dd>
+ </dl>
+ <hr />
+
+ <h2><a id="indexorderdefault"
+ name="indexorderdefault">IndexOrderDefault</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt IndexOrderDefault} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> IndexOrderDefault
+ Ascending|Descending Name|Date|Size|Description <br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess <br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes <br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base <br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex <br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ IndexOrderDefault is only available in Apache 1.3.4 and later.
+
+ <p>The <samp>IndexOrderDefault</samp> directive is used in
+ combination with the <a
+ href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a>
+ index option. By default, fancyindexed directory listings are
+ displayed in ascending order by filename; the
+ <samp>IndexOrderDefault</samp> allows you to change this
+ initial display order.</p>
+
+ <p><samp>IndexOrderDefault</samp> takes two arguments. The
+ first must be either <samp>Ascending</samp> or
+ <samp>Descending</samp>, indicating the direction of the sort.
+ The second argument must be one of the keywords
+ <samp>Name</samp>, <samp>Date</samp>, <samp>Size</samp>, or
+ <samp>Description</samp>, and identifies the primary key. The
+ secondary key is <em>always</em> the ascending filename.</p>
+
+ <p>You can force a directory listing to only be displayed in a
+ particular order by combining this directive with the <a
+ href="#indexoptions:suppresscolumnsorting"><samp>SuppressColumnSorting</samp></a>
+ index option; this will prevent the client from requesting the
+ directory listing in a different order.</p>
+ <hr />
+
+ <h2><a id="readmename" name="readmename">ReadmeName</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt ReadmeName} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ReadmeName
+ <em>filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_autoindex <br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> some features
+ only available after 1.3.6; see <a
+ href="#headername">HeaderName</a>
+
+ <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 location being indexed.</p>
+
+ <p>See also <a href="#headername">HeaderName</a>, where this
+ behavior is described in greater detail.</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_cern_meta.html b/docs/manual/mod/mod_cern_meta.html
index e210c7558e..1a5400e935 100644
--- a/docs/manual/mod/mod_cern_meta.html
+++ b/docs/manual/mod/mod_cern_meta.html
@@ -1,169 +1,138 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Apache module mod_cern_meta</H1>
-
-<p>This module provides for CERN httpd metafile semantics.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_cern_meta.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> cern_meta_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.1 and later.
-</P>
-
-
-<H2>Summary</H2>
-
-<!-- XXX: Should mention other possibilities in Apache: mod_header -->
-
-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="#metafiles">MetaFiles</A>
-<LI><A HREF="#metadir">MetaDir</A>
-<LI><A HREF="#metasuffix">MetaSuffix</A>
-</UL>
-
-<HR>
-
-<H2><A NAME="metafiles">MetaFiles</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MetaFiles on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MetaFiles off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> per-directory config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_cern_meta<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> MetaFiles is only available in Apache 1.3
-and later.<P>
-
-Turns on/off Meta file processing on a per-directory basis. This option was introduced in Apache 1.3.
-
-<hr>
-
-<H2><A NAME="metadir">MetaDir</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MetaDir <EM>directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MetaDir .web</CODE><BR>
-<STRONG>Context: (Apache prior to 1.3)</STRONG> server config<BR>
-<STRONG>Context: (Apache 1.3)</STRONG> per-directory config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_cern_meta<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> 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.
-
-<hr>
-
-<H2><A NAME="metasuffix">MetaSuffix</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MetaSuffix <EM>suffix</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MetaSuffix .meta</CODE><BR>
-<STRONG>Context: (Apache prior to 1.3)</STRONG> server config<BR>
-<STRONG>Context: (Apache 1.3)</STRONG> per-directory config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_cern_meta<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> 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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Apache module mod_cern_meta</h1>
+
+ <p>This module provides for CERN httpd metafile semantics.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_cern_meta.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ cern_meta_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+ <!-- XXX: Should mention other possibilities in Apache: mod_header -->
+ 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.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#metafiles">MetaFiles</a></li>
+
+ <li><a href="#metadir">MetaDir</a></li>
+
+ <li><a href="#metasuffix">MetaSuffix</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="metafiles" name="metafiles">MetaFiles</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MetaFiles on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MetaFiles
+ off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> per-directory
+ config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_cern_meta<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> MetaFiles is
+ only available in Apache 1.3 and later.
+
+ <p>Turns on/off Meta file processing on a per-directory basis.
+ This option was introduced in Apache 1.3.</p>
+ <hr />
+
+ <h2><a id="metadir" name="metadir">MetaDir</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MetaDir
+ <em>directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MetaDir
+ .web</code><br />
+ <strong>Context: (Apache prior to 1.3)</strong> server
+ config<br />
+ <strong>Context: (Apache 1.3)</strong> per-directory
+ config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_cern_meta<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> 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.</p>
+ <hr />
+
+ <h2><a id="metasuffix" name="metasuffix">MetaSuffix</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MetaSuffix
+ <em>suffix</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MetaSuffix
+ .meta</code><br />
+ <strong>Context: (Apache prior to 1.3)</strong> server
+ config<br />
+ <strong>Context: (Apache 1.3)</strong> per-directory
+ config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_cern_meta<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> 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>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_cgi.html b/docs/manual/mod/mod_cgi.html
index 9ebcc793c6..e478a22681 100644
--- a/docs/manual/mod/mod_cgi.html
+++ b/docs/manual/mod/mod_cgi.html
@@ -1,250 +1,218 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_cgi</H1>
-
-<p>This module provides for execution of CGI scripts.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_cgi.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> cgi_module
-</P>
-
-
-<H2>Summary</H2>
-<!-- XXX: Should have references to CGI definition/RFC -->
-<!-- XXX: Should mention Options ExecCGI -->
-
-<p>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 containing 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>
-
-<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.</p>
-
-<p>For an introduction to using CGI scripts with Apache, see our
-tutorial on <a href="../howto/cgi.html">Dynamic Content With CGI</a>.</p>
-
-<p>When using a multi-threaded MPM under unix, the module <a
-href="mod_cgid.html">mod_cgid</a> should be used in place of this
-module. At the user level, the two modules are essentially
-identical.</p>
-
-<h2>Directives</h2>
-
-<ul>
-<li><a href="#scriptlog">ScriptLog</a></li>
-<li><a href="#scriptloglength">ScriptLogLength</a></li>
-<li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
-</ul>
-
-<p>See also: <a href="core.html#options">Options</a>, <a
-href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
-href="mod_mime.html#addtype">AddType</a> and <a
-href="mod_mime.html#addhandler">AddHandler</a>.
-
-<H2>CGI Environment variables</H2>
-The server will set the CGI environment variables as described in the
-<A HREF="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI specification</A>, with the
-following provisions:
-<DL>
-<DT>REMOTE_HOST
-<DD>This will only be set if <A HREF="core.html#hostnamelookups"><CODE>HostnameLookups</CODE></A>
-is set to <CODE>on</CODE> (it is off by default), and if a reverse DNS
-lookup of the accessing host's address indeed finds a host name.
-<DT>REMOTE_IDENT
-<DD>This will only be set if
-<A HREF="core.html#identitycheck">IdentityCheck</A> is set to <CODE>on</CODE>
-and the accessing host supports the ident protocol. Note that the contents
-of this variable cannot be relied upon because it can easily be faked, and if
-there is a proxy between the client and the server, it is usually
-totally useless.
-<DT>REMOTE_USER
-<DD>This will only be set if the CGI script is subject to authentication.
-</DL>
-<P>
-
-<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.
-
-<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>
- %% [<EM>time</EM>] <EM>request-line</EM>
- %% <EM>HTTP-status</EM> <EM>CGI-script-filename</EM>
-</PRE>
-
-If the error is that CGI script cannot be run, the log file will
-contain
-an extra two lines:
-
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_cgi</h1>
+
+ <p>This module provides for execution of CGI scripts.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_cgi.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ cgi_module</p>
+
+ <h2>Summary</h2>
+ <!-- XXX: Should have references to CGI definition/RFC -->
+ <!-- XXX: Should mention Options ExecCGI -->
+
+ <p>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 containing 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>
+
+ <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.</p>
+
+ <p>For an introduction to using CGI scripts with Apache, see
+ our tutorial on <a href="../howto/cgi.html">Dynamic Content
+ With CGI</a>.</p>
+
+ <p>When using a multi-threaded MPM under unix, the module <a
+ href="mod_cgid.html">mod_cgid</a> should be used in place of
+ this module. At the user level, the two modules are essentially
+ identical.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#scriptlog">ScriptLog</a></li>
+
+ <li><a href="#scriptloglength">ScriptLogLength</a></li>
+
+ <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#options">Options</a>, <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
+ href="mod_mime.html#addtype">AddType</a> and <a
+ href="mod_mime.html#addhandler">AddHandler</a>.</p>
+
+ <h2>CGI Environment variables</h2>
+ The server will set the CGI environment variables as described
+ in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
+ specification</a>, with the following provisions:
+
+ <dl>
+ <dt>REMOTE_HOST</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#hostnamelookups"><code>HostnameLookups</code></a>
+ is set to <code>on</code> (it is off by default), and if a
+ reverse DNS lookup of the accessing host's address indeed
+ finds a host name.</dd>
+
+ <dt>REMOTE_IDENT</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#identitycheck">IdentityCheck</a> is set to
+ <code>on</code> and the accessing host supports the ident
+ protocol. Note that the contents of this variable cannot be
+ relied upon because it can easily be faked, and if there is a
+ proxy between the client and the server, it is usually
+ totally useless.</dd>
+
+ <dt>REMOTE_USER</dt>
+
+ <dd>This will only be set if the CGI script is subject to
+ authentication.</dd>
+ </dl>
+
+ <h2><a id="cgi_debug" 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.
+
+ <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>
+ %% [<em>time</em>] <em>request-line</em>
+ %% <em>HTTP-status</em> <em>CGI-script-filename</em>
+</pre>
+ If the error is that CGI script cannot be run, the log file
+ will contain an extra two lines:
+<pre>
%%error
- <EM>error-message</EM>
-</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>
+ <em>error-message</em>
+</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
- <EM>All HTTP request headers received</EM>
- <EM>POST or PUT entity (if any)</EM>
+ <em>All HTTP request headers received</em>
+ <em>POST or PUT entity (if any)</em>
%response
- <EM>All headers output by the CGI script</EM>
+ <em>All headers output by the CGI script</em>
%stdout
- <EM>CGI standard output</EM>
+ <em>CGI standard output</em>
%stderr
- <EM>CGI standard error</EM>
-</PRE>
-
-(The %stdout and %stderr parts may be missing if the script did not
-output
-anything on standard output or standard error).
-
-<HR>
-
-<H3><A NAME="scriptlog">ScriptLog</A> directive</H3>
-
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScriptLog <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> none<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> 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>
-
-<hr>
-
-<H3><A NAME="scriptloglength">ScriptLogLength</A> directive</H3>
-
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScriptLogLength <EM>bytes</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> 10385760<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> 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.
-
-<hr>
-
-<H3><A NAME="scriptlogbuffer">ScriptLogBuffer</A></H3>
-
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScriptLogBuffer <EM>bytes</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> 1024<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> 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.
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+ <em>CGI standard error</em>
+</pre>
+ (The %stdout and %stderr parts may be missing if the script did
+ not output anything on standard output or standard error).
+ <hr />
+
+ <h3><a id="scriptlog" name="scriptlog">ScriptLog</a>
+ directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLog
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> 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>
+
+ <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>
+ <hr />
+
+ <h3><a id="scriptloglength"
+ name="scriptloglength">ScriptLogLength</a> directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogLength
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 10385760<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> 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.</p>
+ <hr />
+
+ <h3><a id="scriptlogbuffer"
+ name="scriptlogbuffer">ScriptLogBuffer</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogBuffer
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 1024<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> 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. <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_cgid.html b/docs/manual/mod/mod_cgid.html
index 396d608d5c..be5337f31b 100644
--- a/docs/manual/mod/mod_cgid.html
+++ b/docs/manual/mod/mod_cgid.html
@@ -1,101 +1,88 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_cgid</H1>
-
-<p>This module provides for execution of CGI scripts using an external
-CGI daemon.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base (unix threaded MPMs only)
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_cgid.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> cgid_module
-</P>
-
-
-<H2>Summary</H2>
-
-<p>On certain unix operating systems, forking a process from a
-multi-threaded server is a very expensive operation because the new
-process will replicate all the threads of the parent process. In
-order to avoid incurring this expense on each CGI invocation, mod_cgid
-creates an external daemon that is responsible for forking child
-processes to run CGI scripts. The main server communicates with this
-daemon using a unix domain socket.</p>
-
-<p>This module is used by default whenever a multi-threaded MPM is
-selected during the compilation process. At the user level, this
-module is identical in configuration and operation to <a
-href="mod_cgi.html">mod_cgi</a>. The only exception is the additional
-directive <code>ScriptSock</code> which gives the name of the socket
-to use for communication with the cgi daemon.</p>
-
-<h2>Directives</h2>
-
-<ul>
-<li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li>
-<li><a href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li>
-<li><a href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li>
-<li><a href="#scriptsock">ScriptSock</a></li>
-</ul>
-
-<hr>
-
-<H3><A NAME="scriptsock">ScriptSock</A> directive</H3>
-
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Scriptsock <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> logs/cgisock<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<br>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_cgid</p>
-
-<p>This directive sets the name of the socket to use for communication
-with the CGI daemon. The socket will be opened using the permissions
-of the user who starts Apache (usually root). To maintain the security
-of communications with CGI scripts, it is important that no other
-user has permission to write in the directory where the socket is
-located.</p>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_cgid</h1>
+
+ <p>This module provides for execution of CGI scripts using an
+ external CGI daemon.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base (unix threaded
+ MPMs only)<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_cgid.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ cgid_module</p>
+
+ <h2>Summary</h2>
+
+ <p>On certain unix operating systems, forking a process from a
+ multi-threaded server is a very expensive operation because the
+ new process will replicate all the threads of the parent
+ process. In order to avoid incurring this expense on each CGI
+ invocation, mod_cgid creates an external daemon that is
+ responsible for forking child processes to run CGI scripts. The
+ main server communicates with this daemon using a unix domain
+ socket.</p>
+
+ <p>This module is used by default whenever a multi-threaded MPM
+ is selected during the compilation process. At the user level,
+ this module is identical in configuration and operation to <a
+ href="mod_cgi.html">mod_cgi</a>. The only exception is the
+ additional directive <code>ScriptSock</code> which gives the
+ name of the socket to use for communication with the cgi
+ daemon.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li>
+
+ <li><a
+ href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li>
+
+ <li><a
+ href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li>
+
+ <li><a href="#scriptsock">ScriptSock</a></li>
+ </ul>
+ <hr />
+
+ <h3><a id="scriptsock" name="scriptsock">ScriptSock</a>
+ directive</h3>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Scriptsock
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> logs/cgisock<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_cgid</p>
+
+ <p>This directive sets the name of the socket to use for
+ communication with the CGI daemon. The socket will be opened
+ using the permissions of the user who starts Apache (usually
+ root). To maintain the security of communications with CGI
+ scripts, it is important that no other user has permission to
+ write in the directory where the socket is located.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_charset_lite.html b/docs/manual/mod/mod_charset_lite.html
index 720aa275a5..6b8ccf963b 100644
--- a/docs/manual/mod/mod_charset_lite.html
+++ b/docs/manual/mod/mod_charset_lite.html
@@ -1,285 +1,232 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_charset_lite</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_charset_lite</H1>
-
-<p>This module provides the ability to specify character set
- translation or recoding.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Experimental
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_charset_lite.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> charset_lite_module
-</P>
-
- <H2>Summary</H2>
- <P>
- This is an <STRONG>experimental</STRONG> module and should be used with
- care. Experiment with your <CODE>mod_charset_lite</CODE> configuration to
- ensure that it performs the desired function.
- </P>
- <P>
- <CODE>mod_charset_lite</CODE> allows the administrator to specify the
- source character set of objects as well as the character set they should
- be translated into before sending to the client.
- <CODE>mod_charset_lite</CODE> does not translate the data itself but
- instead tells Apache what translation to perform.
- <CODE>mod_charset_lite</CODE> is applicable to EBCDIC and ASCII
- host environments. In an EBCDIC environment, Apache normally translates
- text content from the code page of the Apache process locale to
- ISO-8859-1. <CODE>mod_charset_lite</CODE> can be used to specify that
- a different translation is to be performed. In an ASCII environment,
- Apache normally performs no translation, so <CODE>mod_charset_lite</CODE>
- is needed in order for any translation to take place.
- </P>
-
- <p>This module will only work if <code>APACHE_XLATE</code> is defined
- at compile time.</p>
-
- <P>
- This module provides a small subset of configuration mechanisms
- implemented by Russian Apache and its associated <CODE>mod_charset</CODE>.
- </P>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#charsetsourceenc">CharsetSourceEnc</A>
- <LI><A HREF="#charsetdefault">CharsetDefault</A>
- <LI><A HREF="#charsetoptions">CharsetOptions</A>
- </LI>
- </UL>
-
- <H2>Common Problems</H2>
-
- <H3>Invalid character set names</H3>
-
- <P>
- The character set name parameters of CharsetSourceEnc and CharsetDefault
- must be acceptable to the translation mechanism used by APR on the system
- where mod_charset_lite is deployed. These character set names are not
- standardized and are usually not the same as the corresponding values used
- in http headers. Currently, APR can only use iconv(3), so you can easily
- test your character set names using the iconv(1) program, as follows:
- </P>
-
- <PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_charset_lite</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_charset_lite</h1>
+
+ <p>This module provides the ability to specify character set
+ translation or recoding.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_charset_lite.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ charset_lite_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an <strong>experimental</strong> module and should
+ be used with care. Experiment with your
+ <code>mod_charset_lite</code> configuration to ensure that it
+ performs the desired function.</p>
+
+ <p><code>mod_charset_lite</code> allows the administrator to
+ specify the source character set of objects as well as the
+ character set they should be translated into before sending to
+ the client. <code>mod_charset_lite</code> does not translate
+ the data itself but instead tells Apache what translation to
+ perform. <code>mod_charset_lite</code> is applicable to EBCDIC
+ and ASCII host environments. In an EBCDIC environment, Apache
+ normally translates text content from the code page of the
+ Apache process locale to ISO-8859-1.
+ <code>mod_charset_lite</code> can be used to specify that a
+ different translation is to be performed. In an ASCII
+ environment, Apache normally performs no translation, so
+ <code>mod_charset_lite</code> is needed in order for any
+ translation to take place.</p>
+
+ <p>This module will only work if <code>APACHE_XLATE</code> is
+ defined at compile time.</p>
+
+ <p>This module provides a small subset of configuration
+ mechanisms implemented by Russian Apache and its associated
+ <code>mod_charset</code>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#charsetsourceenc">CharsetSourceEnc</a></li>
+
+ <li><a href="#charsetdefault">CharsetDefault</a></li>
+
+ <li><a href="#charsetoptions">CharsetOptions</a></li>
+ </ul>
+
+ <h2>Common Problems</h2>
+
+ <h3>Invalid character set names</h3>
+
+ <p>The character set name parameters of CharsetSourceEnc and
+ CharsetDefault must be acceptable to the translation mechanism
+ used by APR on the system where mod_charset_lite is deployed.
+ These character set names are not standardized and are usually
+ not the same as the corresponding values used in http headers.
+ Currently, APR can only use iconv(3), so you can easily test
+ your character set names using the iconv(1) program, as
+ follows:</p>
+<pre>
iconv -f charsetsourceenc-value -t charsetdefault-value
- </PRE>
-
- <H3>Mismatch between character set of content and translation rules</H3>
-
- <P>
- If the translation rules don't make sense for the content, translation
- can fail in various ways, including:
- </P>
-
- <UL>
- <LI>
- The translation mechanism may return a bad return code, and the connection
- will be aborted.
- <LI>
- The translation mechanism may silently place special characters (e.g., question
- marks) in the output buffer when it cannot translate the input buffer.
- </UL>
-
- <HR>
-
- <H2><A NAME="charsetsourceenc">CharsetSourceEnc</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CharsetSourceEnc <EM>charset</EM>
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> directory, virtual host
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>FileInfo</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_charset_lite
- <BR>
-
- <P>
- The <CODE>CharsetSourceEnc</CODE> directive specifies the source charset
- of files in the associated container.
- </P>
-
- <P>
- The value of the <EM>charset</EM> argument must be accepted as a valid
- character set name by the character set support in APR. Generally, this
- means that it must be supported by iconv.
- </P>
-
- Example:
-
- <PRE>
+
+</pre>
+
+ <h3>Mismatch between character set of content and translation
+ rules</h3>
+
+ <p>If the translation rules don't make sense for the content,
+ translation can fail in various ways, including:</p>
+
+ <ul>
+ <li>The translation mechanism may return a bad return code,
+ and the connection will be aborted.</li>
+
+ <li>The translation mechanism may silently place special
+ characters (e.g., question marks) in the output buffer when
+ it cannot translate the input buffer.</li>
+ </ul>
+ <hr />
+
+ <h2><a id="charsetsourceenc"
+ name="charsetsourceenc">CharsetSourceEnc</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CharsetSourceEnc
+ <em>charset</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory, virtual
+ host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_charset_lite<br />
+ </p>
+
+ <p>The <code>CharsetSourceEnc</code> directive specifies the
+ source charset of files in the associated container.</p>
+
+ <p>The value of the <em>charset</em> argument must be accepted
+ as a valid character set name by the character set support in
+ APR. Generally, this means that it must be supported by
+ iconv.</p>
+ Example:
+<pre>
&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
CharsetSourceEnc UTF-16BE
CharsetDefault ISO8859-1
&lt;/Directory&gt;
- </PRE>
-
- The character set names in this example work with the iconv
- translation support in Solaris 8.
- <P>
-
-<hr>
-
- <H2><A NAME="charsetdefault">CharsetDefault</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CharsetDefault <EM>charset</EM>
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> directory, virtual host
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>FileInfo</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_charset_lite
- <BR>
-
- <P>
- The <CODE>CharsetDefault</CODE> directive specifies the charset that
- content in the associated container should be translated to.
- </P>
-
- <P>
- The value of the <EM>charset</EM> argument must be accepted as a valid
- character set name by the character set support in APR. Generally, this
- means that it must be supported by iconv.
- </P>
-
- Example:
-
- <PRE>
+
+</pre>
+ The character set names in this example work with the iconv
+ translation support in Solaris 8.
+ <hr />
+
+ <h2><a id="charsetdefault"
+ name="charsetdefault">CharsetDefault</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CharsetDefault
+ <em>charset</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory, virtual
+ host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_charset_lite<br />
+ </p>
+
+ <p>The <code>CharsetDefault</code> directive specifies the
+ charset that content in the associated container should be
+ translated to.</p>
+
+ <p>The value of the <em>charset</em> argument must be accepted
+ as a valid character set name by the character set support in
+ APR. Generally, this means that it must be supported by
+ iconv.</p>
+ Example:
+<pre>
&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
CharsetSourceEnc UTF-16BE
CharsetDefault ISO8859-1
&lt;/Directory&gt;
- </PRE>
-
- <P>
-
-<hr>
-
- <H2><A NAME="charsetoptions">CharsetOptions</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CharsetOptions <EM>option</em>
- [<em>option</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>DebugLevel=0</EM> <EM>NoImplicitAdd</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> directory, virtual host
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>FileInfo</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_charset_lite
- <BR>
-
- <P>
- The <CODE>CharsetOptions</CODE> directive configures certain behaviors
- of <CODE>mod_charset_lite</CODE>. <EM>Option</EM> can be one of
- <DL>
- <DT>DebugLevel=<EM>n</EM>
- <DD>
- The <SAMP>DebugLevel</SAMP> keyword allows you to specify the level of
- debug messages generated by <CODE>mod_charset_lite</CODE>. By default, no
- messages are generated. This is equivalent to <SAMP>DebugLevel=0</SAMP>.
- With higher numbers, more debug messages are generated, and server
- performance will be degraded. The actual meanings of the numeric values
- are described with the definitions of the DBGLVL_ constants near the
- beginning of <CODE>mod_charset_lite.c</CODE>.
- <DT>ImplicitAdd | NoImplicitAdd
- <DD>
- The <SAMP>ImplicitAdd</SAMP> keyword specifies that
- <CODE>mod_charset_lite</CODE> should implicitly insert its filter when
- the configuration specifies that the character set of content should be
- translated. If the filter chain is explicitly configured using the
- AddOutputFilter directive, <SAMP>NoImplicitAdd</SAMP> should be specified so
- that <CODE>mod_charset_lite</CODE> doesn't add its filter.
- </DL>
- </P>
-
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+</pre>
+ <hr />
+
+ <h2><a id="charsetoptions"
+ name="charsetoptions">CharsetOptions</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CharsetOptions
+ <em>option</em> [<em>option</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>DebugLevel=0</em>
+ <em>NoImplicitAdd</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory, virtual
+ host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_charset_lite<br />
+ </p>
+
+ <p>The <code>CharsetOptions</code> directive configures certain
+ behaviors of <code>mod_charset_lite</code>. <em>Option</em> can
+ be one of</p>
+
+ <dl>
+ <dt>DebugLevel=<em>n</em></dt>
+
+ <dd>The <samp>DebugLevel</samp> keyword allows you to specify
+ the level of debug messages generated by
+ <code>mod_charset_lite</code>. By default, no messages are
+ generated. This is equivalent to <samp>DebugLevel=0</samp>.
+ With higher numbers, more debug messages are generated, and
+ server performance will be degraded. The actual meanings of
+ the numeric values are described with the definitions of the
+ DBGLVL_ constants near the beginning of
+ <code>mod_charset_lite.c</code>.</dd>
+
+ <dt>ImplicitAdd | NoImplicitAdd</dt>
+
+ <dd>The <samp>ImplicitAdd</samp> keyword specifies that
+ <code>mod_charset_lite</code> should implicitly insert its
+ filter when the configuration specifies that the character
+ set of content should be translated. If the filter chain is
+ explicitly configured using the AddOutputFilter directive,
+ <samp>NoImplicitAdd</samp> should be specified so that
+ <code>mod_charset_lite</code> doesn't add its filter.</dd>
+ </dl>
+ <br />
+ <br />
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_dav.html b/docs/manual/mod/mod_dav.html
index 46b6c26313..fa0bd97ef7 100644
--- a/docs/manual/mod/mod_dav.html
+++ b/docs/manual/mod/mod_dav.html
@@ -1,253 +1,214 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_dav</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_dav</H1>
-
-<p>This module provides Distributed Authoring and Versioning
-(<a href="http://www.webdav.org/">WebDAV</a>) functionality.</p>
-
-<A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_dav.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> dav_module
-
-<h2>Summary</h2>
-
-<p>This module provides class 1 and class 2
-<A HREF="http://www.webdav.org">WebDAV</A> ('Web-based
-Distributed Authoring and Versioning') functionality for Apache.
-This extension to the HTTP protocol allows creating, moving,
-copying, and deleting resources and collections on a remote web
-server.</p>
-
-<P>
-To enable mod_dav, add the following to a container in your <CODE>httpd.conf</CODE> file:</P>
-
-<blockquote>
-<CODE>Dav On</CODE>
-</blockquote>
-
-<p>Also, specify a valid filename for the DAV lock database by adding
-the following to the global section in your <CODE>httpd.conf</CODE>
-file:</p>
-
-<blockquote>
-<CODE>DavLockDB /tmp/DavLock&nbsp;&nbsp;&nbsp;&nbsp;</CODE><EM>(Any web-server writable filename, without an extension)</EM>
-</blockquote>
-
-
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#DAV">Dav</A>
-<LI><A HREF="#DAVLockDB">DavLockDB</A>
-<LI><A HREF="#DAVMinTimeout">DavMinTimeout</A>
-<LI><A HREF="#DAVDepthInfinity">DavDepthInfinity</A>
-</UL>
-
-<HR>
-
-<H2><A NAME="DAV">Dav</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Dav on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <CODE>Dav off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_dav<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.4 and above
-
-<p>Use the <CODE>Dav</CODE> directive to enable the WebDAV HTTP methods
-for the given container.
-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 DAV-enabled locations.</P>
-
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Example</STRONG>:<BR><BR>
-<CODE>DavLockDB /tmp/DavLock<BR>
-<BR>
-&lt;Location /foo&gt;<BR>
-Dav On<BR>
-<BR>
-AuthType Basic<BR>
-AuthName DAV<BR>
-AuthUserFile user.passwd<BR>
-<BR>
-&nbsp;&nbsp;&lt;LimitExcept GET HEAD OPTIONS&gt;<BR>
-&nbsp;&nbsp;require user admin<BR>
-&nbsp;&nbsp;&lt;/LimitExcept&gt;<BR>
-&lt;/Location&gt;<BR>
-</CODE>
-</TD></TR>
-</TABLE>
-
-<BR>
-<HR>
-
-<H2><A NAME="DavLockDB">DavLockDB</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> DavLockDB <em>filename</em><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_dav
-
-<p>Use the <CODE>DavLockDB</CODE> directive to specify the full path to the
-lock database, excluding an extension. The default (file system)
-implementation of mod_dav uses a SDBM database to track user locks.
-The utility <CODE>modules/dav/util/lockview</CODE> can be
-used from the server to display all locks in a lock database.</P>
-
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Example</STRONG>:<BR><BR>
-<CODE>DavLockDB /tmp/DavLock<BR>
-<BR>
-</CODE>
-</TD></TR>
-</TABLE>
-
-<BR>
-<HR>
-
-<H2><A NAME="DavMinTimeout">DavMinTimeout</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> DavMinTimeout <em>seconds</em><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <CODE>DavMinTimeout 0</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_dav
-
-<p>When a client requests a DAV resource lock, it can also specify a time
-when the lock will be automatically removed by the server. This value
-is only a request, and the server can ignore it or inform the client
-of an arbitrary value.</P>
-
-<p>Use the <CODE>DavMinTimeout</CODE> directive to specify, in seconds,
-the minimum lock timeout to return to a client. Microsoft Web Folders
-defaults to a timeout of 120 seconds; the <CODE>DavMinTimeout</CODE>
-can override this to a higher value (like 600 seconds) to reduce the chance
-of the client losing the lock due to network latency.</P>
-
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Example</STRONG>:<BR><BR>
-<CODE>&lt;Location /MSWord&gt;<BR>
-DavMinTimeout 600<BR>
-&lt;/Location&gt;<BR>
-<BR>
-</CODE>
-</TD></TR>
-</TABLE>
-
-<BR>
-<HR>
-
-<H2><A NAME="DavDepthInfinity">DavDepthInfinity</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> DavDepthInfinity on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <CODE>DavDepthInfinity off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_dav
-
-<p>Use the <CODE>DavDepthInfinity</CODE> directive to allow the processing
-of PROPFIND requests containing the header 'Depth: Infinity'.
-Because this type of request could constitute a denial-of-service attack,
-by default it is not allowed.</P>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_dav</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_dav</h1>
+
+ <p>This module provides Distributed Authoring and Versioning
+ (<a href="http://www.webdav.org/">WebDAV</a>)
+ functionality.</p>
+ <a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension <br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_dav.c <br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a> dav_module
+
+ <h2>Summary</h2>
+
+ <p>This module provides class 1 and class 2 <a
+ href="http://www.webdav.org">WebDAV</a> ('Web-based Distributed
+ Authoring and Versioning') functionality for Apache. This
+ extension to the HTTP protocol allows creating, moving,
+ copying, and deleting resources and collections on a remote web
+ server.</p>
+
+ <p>To enable mod_dav, add the following to a container in your
+ <code>httpd.conf</code> file:</p>
+
+ <blockquote>
+ <code>Dav On</code>
+ </blockquote>
+
+ <p>Also, specify a valid filename for the DAV lock database by
+ adding the following to the global section in your
+ <code>httpd.conf</code> file:</p>
+
+ <blockquote>
+ <code>DavLockDB /tmp/DavLock&nbsp;&nbsp;&nbsp;&nbsp;</code>
+ <em>(Any web-server writable filename, without an
+ extension)</em>
+ </blockquote>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#DAV">Dav</a></li>
+
+ <li><a href="#DAVLockDB">DavLockDB</a></li>
+
+ <li><a href="#DAVMinTimeout">DavMinTimeout</a></li>
+
+ <li><a href="#DAVDepthInfinity">DavDepthInfinity</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="DAV" name="DAV">Dav</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Dav on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>Dav
+ off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_dav<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.4 and
+ above
+
+ <p>Use the <code>Dav</code> directive to enable the WebDAV HTTP
+ methods for the given container. 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 DAV-enabled locations.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0" cellspacing="0"
+ cellpadding="10">
+ <tr>
+ <td><strong>Example</strong>:<br />
+ <br />
+ <code>DavLockDB /tmp/DavLock<br />
+ <br />
+ &lt;Location /foo&gt;<br />
+ Dav On<br />
+ <br />
+ AuthType Basic<br />
+ AuthName DAV<br />
+ AuthUserFile user.passwd<br />
+ <br />
+ &nbsp;&nbsp;&lt;LimitExcept GET HEAD OPTIONS&gt;<br />
+ &nbsp;&nbsp;require user admin<br />
+ &nbsp;&nbsp;&lt;/LimitExcept&gt;<br />
+ &lt;/Location&gt;<br />
+ </code> </td>
+ </tr>
+ </table>
+ <br />
+
+ <hr />
+
+ <h2><a id="DavLockDB" name="DavLockDB">DavLockDB</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> DavLockDB
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_dav
+
+ <p>Use the <code>DavLockDB</code> directive to specify the full
+ path to the lock database, excluding an extension. The default
+ (file system) implementation of mod_dav uses a SDBM database to
+ track user locks. The utility
+ <code>modules/dav/util/lockview</code> can be used from the
+ server to display all locks in a lock database.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0" cellspacing="0"
+ cellpadding="10">
+ <tr>
+ <td><strong>Example</strong>:<br />
+ <br />
+ <code>DavLockDB /tmp/DavLock<br />
+ <br />
+ </code> </td>
+ </tr>
+ </table>
+ <br />
+
+ <hr />
+
+ <h2><a id="DavMinTimeout"
+ name="DavMinTimeout">DavMinTimeout</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> DavMinTimeout
+ <em>seconds</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>DavMinTimeout
+ 0</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_dav
+
+ <p>When a client requests a DAV resource lock, it can also
+ specify a time when the lock will be automatically removed by
+ the server. This value is only a request, and the server can
+ ignore it or inform the client of an arbitrary value.</p>
+
+ <p>Use the <code>DavMinTimeout</code> directive to specify, in
+ seconds, the minimum lock timeout to return to a client.
+ Microsoft Web Folders defaults to a timeout of 120 seconds; the
+ <code>DavMinTimeout</code> can override this to a higher value
+ (like 600 seconds) to reduce the chance of the client losing
+ the lock due to network latency.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0" cellspacing="0"
+ cellpadding="10">
+ <tr>
+ <td><strong>Example</strong>:<br />
+ <br />
+ <code>&lt;Location /MSWord&gt;<br />
+ DavMinTimeout 600<br />
+ &lt;/Location&gt;<br />
+ <br />
+ </code> </td>
+ </tr>
+ </table>
+ <br />
+
+ <hr />
+
+ <h2><a id="DavDepthInfinity"
+ name="DavDepthInfinity">DavDepthInfinity</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> DavDepthInfinity
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>DavDepthInfinity
+ off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_dav
+
+ <p>Use the <code>DavDepthInfinity</code> directive to allow the
+ processing of PROPFIND requests containing the header 'Depth:
+ Infinity'. Because this type of request could constitute a
+ denial-of-service attack, by default it is not allowed.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_dir.html b/docs/manual/mod/mod_dir.html
index 672f333e16..d1573a6674 100644
--- a/docs/manual/mod/mod_dir.html
+++ b/docs/manual/mod/mod_dir.html
@@ -1,119 +1,115 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_dir</H1>
-
-<p>This module provides for "trailing slash" redirects and serving
-directory index files.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_dir.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> dir_module
-</P>
-
-<H2>Summary</H2>
-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.
-This is controlled by <CODE>mod_dir</CODE>.
-<LI>Otherwise, a listing generated by the server. This is provided by
-<A HREF="mod_autoindex.html"><CODE>mod_autoindex</CODE></A>.
-</UL>
-The two functions are separated so that you can completely remove
-(or replace) automatic index generation should you want to.
-<P>A "trailing slash" redirect is issued when the server receives a
-request for a URL <SAMP>http://servername/foo/dirname</SAMP> where
-<SAMP>dirname</SAMP> is a directory. Directories require a trailing
-slash, so <CODE>mod_dir</CODE> issues a redirect to
-<SAMP>http://servername/foo/dirname/</SAMP>.
-
-<H2>Directives</H2>
-
-<MENU>
-<LI><A HREF="#directoryindex">DirectoryIndex</A>
-</MENU>
-<HR>
-
-<H2><A NAME="directoryindex">DirectoryIndex</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt DirectoryIndex} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> DirectoryIndex <EM>local-url</em>
- [<em>local-url</em>] ...<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>DirectoryIndex index.html</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_dir</h1>
+
+ <p>This module provides for "trailing slash" redirects and
+ serving directory index files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_dir.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ dir_module</p>
+
+ <h2>Summary</h2>
+ 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. This is controlled by
+ <code>mod_dir</code>.</li>
+
+ <li>Otherwise, a listing generated by the server. This is
+ provided by <a
+ href="mod_autoindex.html"><code>mod_autoindex</code></a>.</li>
+ </ul>
+ The two functions are separated so that you can completely
+ remove (or replace) automatic index generation should you want
+ to.
+
+ <p>A "trailing slash" redirect is issued when the server
+ receives a request for a URL
+ <samp>http://servername/foo/dirname</samp> where
+ <samp>dirname</samp> is a directory. Directories require a
+ trailing slash, so <code>mod_dir</code> issues a redirect to
+ <samp>http://servername/foo/dirname/</samp>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#directoryindex">DirectoryIndex</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="directoryindex"
+ name="directoryindex">DirectoryIndex</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt DirectoryIndex} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> DirectoryIndex
+ <em>local-url</em> [<em>local-url</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>DirectoryIndex
+ index.html</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>
+
+ <p>Example:</p>
+
+ <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;</p>
+
+ <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><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_env.html b/docs/manual/mod/mod_env.html
index 65d330075b..295b875eba 100644
--- a/docs/manual/mod/mod_env.html
+++ b/docs/manual/mod/mod_env.html
@@ -1,159 +1,123 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Apache module mod_env</H1>
-
-<p>This module provides for modifying the environment which
-is passed to CGI scripts and SSI pages.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_env.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> env_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.1 and later.
-</P>
-
-<H2>Summary</H2>
-
-<p>This module allows for control of the environment that will be
-provided to CGI scripts and SSI pages. Environment variables may be
-passed from the shell which invoked the httpd process. Alternatively,
-environment variables may be set or unset within the configuration
-process.</p>
-
-<p>For additional information, we provide a document on
-<a href="../env.html">Environment Variables in Apache</a>.</p>
-
-<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> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> PassEnv <EM>env-variable</em>
- [<em>env-variable</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_env<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> PassEnv is only available in
-Apache 1.1 and later.<P>
-
-Specifies one or more environment variables to pass to CGI scripts
-and SSI pages from the environment of the shell which invoked
-the httpd process. Example:
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Apache module mod_env</h1>
+
+ <p>This module provides for modifying the environment which is
+ passed to CGI scripts and SSI pages.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_env.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ env_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module allows for control of the environment that will
+ be provided to CGI scripts and SSI pages. Environment variables
+ may be passed from the shell which invoked the httpd process.
+ Alternatively, environment variables may be set or unset within
+ the configuration process.</p>
+
+ <p>For additional information, we provide a document on <a
+ href="../env.html">Environment Variables in Apache</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#passenv">PassEnv</a></li>
+
+ <li><a href="#setenv">SetEnv</a></li>
+
+ <li><a href="#unsetenv">UnsetEnv</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="passenv" name="passenv">PassEnv</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> PassEnv
+ <em>env-variable</em> [<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_env<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> PassEnv is only
+ available in Apache 1.1 and later.
+
+ <p>Specifies one or more environment variables to pass to CGI
+ scripts and SSI pages from the environment of the shell which
+ invoked the httpd process. Example:</p>
+<pre>
PassEnv LD_LIBRARY_PATH
-</PRE>
-
-<HR>
-
-<H2><A NAME="setenv">SetEnv</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> SetEnv <EM>env-variable value</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_env<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> SetEnv is only available in
-Apache 1.1 and later.<P>
-
-Sets an environment variable, which is then passed on to CGI
-scripts and SSI pages. Example:
-<PRE>
+</pre>
+ <hr />
+
+ <h2><a id="setenv" name="setenv">SetEnv</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> SetEnv <em>env-variable
+ value</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_env<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> SetEnv is only
+ available in Apache 1.1 and later.
+
+ <p>Sets an environment variable, which is then passed on to CGI
+ scripts and SSI pages. Example:</p>
+<pre>
SetEnv SPECIAL_PATH /foo/bin
-</PRE>
-
-<HR>
-
-<H2><A NAME="unsetenv">UnsetEnv</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> UnsetEnv <EM>env-variable</em>
- [<em>env-variable</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_env<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> UnsetEnv is only available in
-Apache 1.1 and later.<P>
-
-Removes one or more environment variables from those passed on to
-CGI scripts and SSI pages. Example:
-<PRE>
+</pre>
+ <hr />
+
+ <h2><a id="unsetenv" name="unsetenv">UnsetEnv</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> UnsetEnv
+ <em>env-variable</em> [<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_env<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> UnsetEnv is only
+ available in Apache 1.1 and later.
+
+ <p>Removes one or more environment variables from those passed
+ on to CGI scripts and SSI pages. Example:</p>
+<pre>
UnsetEnv LD_LIBRARY_PATH
-</PRE>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_example.html b/docs/manual/mod/mod_example.html
index 79d3a8751f..96ca75f6ad 100644
--- a/docs/manual/mod/mod_example.html
+++ b/docs/manual/mod/mod_example.html
@@ -1,201 +1,165 @@
-<!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"
- >
- <!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
- <H1 ALIGN="CENTER">Module mod_example</H1>
- <P>
- This module 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>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_example.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> example_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.2 and later.
-</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 syntaxes. 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>
- <H2>Directives</H2>
- <P>
- <UL>
- <LI><A HREF="#example">Example</A>
- </LI>
- </UL>
- </P>
-
- <h2>Compiling the example module</h2>
- <P>
- To include the example module in your server, follow the steps below:
- </P>
- <OL>
- <LI>Uncomment the "AddModule modules/example/mod_example" line near
- the bottom of
- the <CODE>src/Configuration</CODE> file. If there isn't one, add
- it; it should look like this:
- <PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <blockquote>
+ <strong>Warning:</strong> This document has not been updated
+ to take into account changes made in the 2.0 version of the
+ Apache HTTP Server. Some of the information may still be
+ relevant, but please use it with care.
+ </blockquote>
+
+ <h1 align="CENTER">Module mod_example</h1>
+
+ <p>This module 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>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_example.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ example_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.2 and later.</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
+ syntaxes. 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>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#example">Example</a></li>
+ </ul>
+ <br />
+ <br />
+
+
+ <h2>Compiling the example module</h2>
+
+ <p>To include the example module in your server, follow the
+ steps below:</p>
+
+ <ol>
+ <li>
+ Uncomment the "AddModule modules/example/mod_example" line
+ near the bottom of the <code>src/Configuration</code> file.
+ If there isn't one, add it; it should look like this:
+<pre>
AddModule 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>
- <H2>
- Using the <SAMP>mod_example</SAMP> Module
- </H2>
- <P>
- To activate the example module, include a block similar to the
- following in your <SAMP>srm.conf</SAMP> file:
- </P>
- <PRE>
+
+</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>
+
+ <h2>Using the <samp>mod_example</samp> Module</h2>
+
+ <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>
+
+</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 "test.example" 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>
-
- <HR>
- <H2><A NAME="example">
- Example directive
- </A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> Example
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> None
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> Options
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_example
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> <SAMP>Example</SAMP> is only
- available in Apache 1.2 and later.
- </P>
- <P>
- The <SAMP>Example</SAMP> directive just sets a demonstration flag which the
- example module's content handler displays. 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. The effect of this directive
- one can observe under the point "<SAMP>Example directive declared
- here: YES/NO</SAMP>".
- </P>
- <!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+
+</pre>
+
+ <p>After reloading/restarting your server, you should be able
+ to browse to this location and see the brief display mentioned
+ earlier.</p>
+ <hr />
+
+ <h2><a id="example" name="example">Example directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Example<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Options<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_example<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ <samp>Example</samp> is only available in Apache 1.2 and
+ later.</p>
+
+ <p>The <samp>Example</samp> directive just sets a demonstration
+ flag which the example module's content handler displays. 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. The effect of this
+ directive one can observe under the point "<samp>Example
+ directive declared here: YES/NO</samp>".</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_expires.html b/docs/manual/mod/mod_expires.html
index c80b194ae0..bae83e9873 100644
--- a/docs/manual/mod/mod_expires.html
+++ b/docs/manual/mod/mod_expires.html
@@ -1,350 +1,260 @@
-<!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"
- >
- <!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_expires</H1>
- <P>
- This module provides for the generation of <CODE>Expires</CODE> HTTP
- headers according to user-specified criteria.
- </P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_expires.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> expires_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.2 and later.
-</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>
- <ul>
- <LI><A
- HREF="#expiresactive"
- >ExpiresActive</A>
- </LI>
- <LI><A
- HREF="#expiresbytype"
- >ExpiresByType</A>
- </LI>
- <LI><A
- HREF="#expiresdefault"
- >ExpiresDefault</A>
- </LI>
- </ul>
-
- <H2>
- <A NAME="AltSyn">Alternate Interval Syntax</A>
- </H2>
- <P>
- The
- <A
- HREF="#expiresdefault"
- ><SAMP>ExpiresDefault</SAMP></A>
- and
- <A
- HREF="#expiresbytype"
- ><SAMP>ExpiresByType</SAMP></A>
- directives can also be defined in a more readable syntax of the form:
- </P>
- <DL>
- <DD><CODE>ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt; &lt;type&gt;}*"
- <BR>
- ExpiresByType type/encoding "&lt;base&gt; [plus]
- {&lt;num&gt; &lt;type&gt;}*"</CODE>
- </DD>
- </DL>
- <P>
- where &lt;base&gt; is one of:
- </P>
- <MENU>
- <LI><SAMP>access</SAMP>
- </LI>
- <LI><SAMP>now</SAMP> (equivalent to '<SAMP>access</SAMP>')
- </LI>
- <LI><SAMP>modification</SAMP>
- </LI>
- </MENU>
- <P>
- The '<SAMP>plus</SAMP>' keyword is optional. &lt;num&gt; should be an
- integer value [acceptable to <SAMP>atoi()</SAMP>], and &lt;type&gt;
- is one of:
- </P>
- <MENU>
- <LI><SAMP>years</SAMP>
- </LI>
- <LI><SAMP>months</SAMP>
- </LI>
- <LI><SAMP>weeks</SAMP>
- </LI>
- <LI><SAMP>days</SAMP>
- </LI>
- <LI><SAMP>hours</SAMP>
- </LI>
- <LI><SAMP>minutes</SAMP>
- </LI>
- <LI><SAMP>seconds</SAMP>
- </LI>
- </MENU>
- <P>
- For example, any of the following directives can be used to make
- documents expire 1 month after being accessed, by default:
- </P>
- <DL>
- <DD><CODE>ExpiresDefault "access plus 1 month"
- <BR>
- ExpiresDefault "access plus 4 weeks"
- <BR>
- ExpiresDefault "access plus 30 days"</CODE>
- </DD>
- </DL>
- <P>
- The expiry time can be fine-tuned by adding several '&lt;num&gt;
- &lt;type&gt;' clauses:
- </P>
- <DL>
- <DD><CODE>ExpiresByType text/html "access plus 1 month 15 days 2 hours"
- <BR>
- ExpiresByType image/gif "modification plus 5 hours 3 minutes"</CODE>
- </DD>
- </DL>
- <P>
- Note that if you use a modification date based setting, the Expires
- header will <STRONG>not</STRONG> be added to content that does
- not come from a file on disk. This is due to the fact that there is
- no modification time for such content.
-
- <HR>
- <H2><A NAME="expiresactive">
- ExpiresActive directive
- </A></H2>
- <!--%plaintext &lt;?INDEX {\tt ExpiresActive} directive&gt; -->
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> ExpiresActive on|off
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> Indexes
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> 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>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> ExpiresByType <EM>MIME-type
- &lt;code&gt;seconds</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> Indexes
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> 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>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_expires</h1>
+
+ <p>This module provides for the generation of
+ <code>Expires</code> HTTP headers according to user-specified
+ criteria.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_expires.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ expires_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.2 and later.</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 "expired" and invalid, and a new copy
+ must be obtained from the source.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#expiresactive">ExpiresActive</a></li>
+
+ <li><a href="#expiresbytype">ExpiresByType</a></li>
+
+ <li><a href="#expiresdefault">ExpiresDefault</a></li>
+ </ul>
+
+ <h2><a id="AltSyn" name="AltSyn">Alternate Interval
+ Syntax</a></h2>
+
+ <p>The <a
+ href="#expiresdefault"><samp>ExpiresDefault</samp></a> and <a
+ href="#expiresbytype"><samp>ExpiresByType</samp></a> directives
+ can also be defined in a more readable syntax of the form:</p>
+
+ <dl>
+ <dd><code>ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt;
+ &lt;type&gt;}*"<br />
+ ExpiresByType type/encoding "&lt;base&gt; [plus]
+ {&lt;num&gt; &lt;type&gt;}*"</code></dd>
+ </dl>
+
+ <p>where &lt;base&gt; is one of:</p>
+
+ <ul>
+ <li><samp>access</samp></li>
+
+ <li><samp>now</samp> (equivalent to
+ '<samp>access</samp>')</li>
+
+ <li><samp>modification</samp></li>
+ </ul>
+
+ <p>The '<samp>plus</samp>' keyword is optional. &lt;num&gt;
+ should be an integer value [acceptable to <samp>atoi()</samp>],
+ and &lt;type&gt; is one of:</p>
+
+ <ul>
+ <li><samp>years</samp></li>
+
+ <li><samp>months</samp></li>
+
+ <li><samp>weeks</samp></li>
+
+ <li><samp>days</samp></li>
+
+ <li><samp>hours</samp></li>
+
+ <li><samp>minutes</samp></li>
+
+ <li><samp>seconds</samp></li>
+ </ul>
+
+ <p>For example, any of the following directives can be used to
+ make documents expire 1 month after being accessed, by
+ default:</p>
+
+ <dl>
+ <dd><code>ExpiresDefault "access plus 1 month"<br />
+ ExpiresDefault "access plus 4 weeks"<br />
+ ExpiresDefault "access plus 30 days"</code></dd>
+ </dl>
+
+ <p>The expiry time can be fine-tuned by adding several
+ '&lt;num&gt; &lt;type&gt;' clauses:</p>
+
+ <dl>
+ <dd><code>ExpiresByType text/html "access plus 1 month 15
+ days 2 hours"<br />
+ ExpiresByType image/gif "modification plus 5 hours 3
+ minutes"</code></dd>
+ </dl>
+
+ <p>Note that if you use a modification date based setting, the
+ Expires header will <strong>not</strong> be added to content
+ that does not come from a file on disk. This is due to the fact
+ that there is no modification time for such content.</p>
+ <hr />
+
+ <h2><a id="expiresactive" name="expiresactive">ExpiresActive
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresActive} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExpiresActive
+ on|off<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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 id="expiresbytype" name="expiresbytype">ExpiresByType
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresByType} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExpiresByType
+ <em>MIME-type &lt;code&gt;seconds</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>
+<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>
- <P>
- You can also specify the expiration time calculation using an
- <A
- HREF="#AltSyn"
- >alternate syntax</A>,
- described later in this document.
- </P>
- <HR>
- <H2><A NAME="expiresdefault">
- ExpiresDefault directive
- </A></H2>
- <!--%plaintext &lt;?INDEX {\tt ExpiresDefault} directive&gt; -->
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> ExpiresDefault <EM>&lt;code&gt;seconds</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> Indexes
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> 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, and the
- <A
- HREF="#AltSyn"
- >alternate syntax</A>
- description as well.
- </P>
-
- <!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+
+</pre>
+ <br />
+ <br />
+
+
+ <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>
+
+ <p>You can also specify the expiration time calculation using
+ an <a href="#AltSyn">alternate syntax</a>, described later in
+ this document.</p>
+ <hr />
+
+ <h2><a id="expiresdefault" name="expiresdefault">ExpiresDefault
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ExpiresDefault} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExpiresDefault
+ <em>&lt;code&gt;seconds</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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, and the <a href="#AltSyn">alternate syntax</a>
+ description as well.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_ext_filter.html b/docs/manual/mod/mod_ext_filter.html
index d6f663fdc3..50afe50bb2 100644
--- a/docs/manual/mod/mod_ext_filter.html
+++ b/docs/manual/mod/mod_ext_filter.html
@@ -1,82 +1,76 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_ext_filter</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_ext_filter</H1>
-
- <P>This module provides the ability to pass the response body
- through an external program before delivering to the client.</p>
-
-<p><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Experimental
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_ext_filter.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> ext_filter_module</p>
-
-
- <H2>Summary</H2>
- <P>
- This is an <STRONG>experimental</STRONG> module and should be used with
- care. Test your <CODE>mod_ext_filter</CODE> configuration carefully to
- ensure that it performs the desired function. You may wish to review
- XXX for background on the Apache filtering model.
- </P>
-
- <P>
- <CODE>mod_ext_filter</CODE> presents a simple and familiar programming
- model for filters. With this module, a program which reads from stdin and
- writes to stdout (i.e., a Unix-style filter command) can be a filter for
- Apache. This filtering mechanism is much slower than using a filter which
- is specially written for the Apache API and runs inside of the Apache
- server process, but it does have the following benefits:
- </P>
-
- <UL>
- <LI>the programming model is much simpler
- <LI>any programming/scripting language can be used, provided that
- it allows the program to read from standard input and write to standard
- output
- <LI>existing programs can be used unmodified as Apache filters
- </UL>
-
- <P>
- Even when the performance characteristics are not suitable for production
- use, <CODE>mod_ext_filter</CODE> can be used as a prototype environment
- for filters.
- </P>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#extfilterdefine">ExtFilterDefine</A>
- <LI><A HREF="#extfilteroptions">ExtFilterOptions</A>
- </LI>
- </UL>
-
-
- <H2>Examples</H2>
-
- <H3>Generating HTML from some other type of response</H3>
-
- <PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_ext_filter</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_ext_filter</h1>
+
+ <p>This module provides the ability to pass the response body
+ through an external program before delivering to the
+ client.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_ext_filter.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ ext_filter_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an <strong>experimental</strong> module and should
+ be used with care. Test your <code>mod_ext_filter</code>
+ configuration carefully to ensure that it performs the desired
+ function. You may wish to review XXX for background on the
+ Apache filtering model.</p>
+
+ <p><code>mod_ext_filter</code> presents a simple and familiar
+ programming model for filters. With this module, a program
+ which reads from stdin and writes to stdout (i.e., a Unix-style
+ filter command) can be a filter for Apache. This filtering
+ mechanism is much slower than using a filter which is specially
+ written for the Apache API and runs inside of the Apache server
+ process, but it does have the following benefits:</p>
+
+ <ul>
+ <li>the programming model is much simpler</li>
+
+ <li>any programming/scripting language can be used, provided
+ that it allows the program to read from standard input and
+ write to standard output</li>
+
+ <li>existing programs can be used unmodified as Apache
+ filters</li>
+ </ul>
+
+ <p>Even when the performance characteristics are not suitable
+ for production use, <code>mod_ext_filter</code> can be used as
+ a prototype environment for filters.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#extfilterdefine">ExtFilterDefine</a></li>
+
+ <li><a href="#extfilteroptions">ExtFilterOptions</a></li>
+ </ul>
+
+ <h2>Examples</h2>
+
+ <h3>Generating HTML from some other type of response</h3>
+<pre>
# mod_ext_filter directive to define a filter to HTML-ize text/c files
# using the external program /usr/bin/enscript, with the type of the
# result set to text/html
@@ -97,11 +91,11 @@ REL="Help"
ExtFilterOptions DebugLevel=1
&lt;/Directory&gt;
- </PRE>
+
+</pre>
- <H3>Implementing a content encoding filter</H3>
-
- <PRE>
+ <h3>Implementing a content encoding filter</h3>
+<pre>
# mod_ext_filter directive to define the external filter
ExtFilterDefine gzip mode=output cmd=/bin/gzip
@@ -114,10 +108,11 @@ REL="Help"
Header set Content-Encoding gzip
&lt;/Location&gt;
- </PRE>
+
+</pre>
- <H3>Slowing down the server</H3>
- <PRE>
+ <h3>Slowing down the server</h3>
+<pre>
# mod_ext_filter directive to define a filter which runs everything
# through cat; cat doesn't modify anything; it just introduces extra
# pathlength and consumes more resources
@@ -130,163 +125,144 @@ REL="Help"
SetOutputFilter slowdown slowdown slowdown
&lt;/Location&gt;
- </PRE>
-
- <HR>
-
- <H2><A NAME="extfilterdefine">ExtFilterDefine</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> ExtFilterDefine <EM>filtername</EM> <EM>parameters</EM>
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> none
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_ext_filter
-
- <P>
- The <CODE>ExtFilterDefine</CODE> directive defines the characteristics of
- an external filter, including the program to run and its arguments.
- </P>
-
- <P>
- <EM>filtername</EM> specifies the name of the filter being defined. This name
- can then be used in SetOutputFilter directives. It must be unique among all
- registered filters. <EM>At the present time, no error is reported by the
- register-filter API, so a problem with duplicate names isn't reported to the
- user.</EM>
- </P>
-
- <P>
- Subsequent parameters can appear in any order and define the external command
- to run and certain other characteristics. The only required parameter is
- <EM>cmd=</EM>. These parameters are:
- </P>
-
- <DL>
- <DT>cmd=<EM>cmdline</EM>
- <DD>
- The <SAMP>cmd=</SAMP> keyword allows you to specify the external command
- to run. If there are arguments after the program name, the command line
- should be surrounded in quotation marks.
- <DT>mode=<EM>mode</EM>
- <DD>
- <EM>mode</EM> should be <EM>output</EM> for now (the default). In the
- future, <EM>mode=input</EM> will be used to specify a filter for request
- bodies.
- <DT>intype=<EM>imt</EM>
- <DD>
- This parameter specifies the internet media
- type (i.e., MIME type) of documents which should be filtered. By default,
- all documents are filtered. If <CODE>intype=</CODE> is specified,
- the filter will be disabled for documents of other types.
- <DT>outtype=<EM>imt</EM>
- <DD>
- This parameter specifies the internet media
- type (i.e., MIME type) of filtered documents. It is useful when the filter
- changes the internet media type as part of the filtering operation. By
- default, the internet media type is unchanged.
- <DT>PreservesContentLength
- <DD>
- The <SAMP>PreservesContentLength</SAMP> keyword specifies that the filter
- preserves the content length. This is not the default, as most filters
- change the content length. In the event that the filter doesn't modify the
- length, this keyword should be specified.
- </DL>
-
-<hr>
-
- <H2><A NAME="extfilteroptions">ExtFilterOptions</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> ExtFilterOptions <EM>option</em>
- [<em>option</EM>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>DebugLevel=0</EM> <EM>NoLogStderr</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> directory
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> none
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_ext_filter
-
- <P>
- The <CODE>ExtFilterOptions</CODE> directive specifies special processing
- options for <CODE>mod_ext_filter</CODE>. <EM>Option</EM> can be one of
- <DL>
- <DT>DebugLevel=<EM>n</EM>
- <DD>
- The <SAMP>DebugLevel</SAMP> keyword allows you to specify the level of
- debug messages generated by <CODE>mod_ext_filter</CODE>. By default, no
- debug messages are generated. This is equivalent to
- <SAMP>DebugLevel=0</SAMP>. With higher numbers, more debug messages are
- generated, and server performance will be degraded. The actual meanings
- of the numeric values are described with the definitions of the DBGLVL_
- constants near the beginning of <CODE>mod_ext_filter.c</CODE>.
- <P>
- Note: The core directive LogLevel should be used to cause debug messages
- to be stored in the Apache error log.
- <DT>LogStderr | NoLogStderr
- <DD>
- The <SAMP>LogStderr</SAMP> keyword specifies that messages written to
- standard error by the external filter program will be saved in the Apache
- error log. <SAMP>NoLogStderr</SAMP> disables this feature.
- </DL>
- </P>
-
- Example:
-
- <PRE>
+
+</pre>
+ <hr />
+
+ <h2><a id="extfilterdefine"
+ name="extfilterdefine">ExtFilterDefine</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExtFilterDefine
+ <em>filtername</em> <em>parameters</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> none<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_ext_filter</p>
+
+ <p>The <code>ExtFilterDefine</code> directive defines the
+ characteristics of an external filter, including the program to
+ run and its arguments.</p>
+
+ <p><em>filtername</em> specifies the name of the filter being
+ defined. This name can then be used in SetOutputFilter
+ directives. It must be unique among all registered filters.
+ <em>At the present time, no error is reported by the
+ register-filter API, so a problem with duplicate names isn't
+ reported to the user.</em></p>
+
+ <p>Subsequent parameters can appear in any order and define the
+ external command to run and certain other characteristics. The
+ only required parameter is <em>cmd=</em>. These parameters
+ are:</p>
+
+ <dl>
+ <dt>cmd=<em>cmdline</em></dt>
+
+ <dd>The <samp>cmd=</samp> keyword allows you to specify the
+ external command to run. If there are arguments after the
+ program name, the command line should be surrounded in
+ quotation marks.</dd>
+
+ <dt>mode=<em>mode</em></dt>
+
+ <dd><em>mode</em> should be <em>output</em> for now (the
+ default). In the future, <em>mode=input</em> will be used to
+ specify a filter for request bodies.</dd>
+
+ <dt>intype=<em>imt</em></dt>
+
+ <dd>This parameter specifies the internet media type (i.e.,
+ MIME type) of documents which should be filtered. By default,
+ all documents are filtered. If <code>intype=</code> is
+ specified, the filter will be disabled for documents of other
+ types.</dd>
+
+ <dt>outtype=<em>imt</em></dt>
+
+ <dd>This parameter specifies the internet media type (i.e.,
+ MIME type) of filtered documents. It is useful when the
+ filter changes the internet media type as part of the
+ filtering operation. By default, the internet media type is
+ unchanged.</dd>
+
+ <dt>PreservesContentLength</dt>
+
+ <dd>The <samp>PreservesContentLength</samp> keyword specifies
+ that the filter preserves the content length. This is not the
+ default, as most filters change the content length. In the
+ event that the filter doesn't modify the length, this keyword
+ should be specified.</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="extfilteroptions"
+ name="extfilteroptions">ExtFilterOptions</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExtFilterOptions
+ <em>option</em> [<em>option</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>DebugLevel=0</em>
+ <em>NoLogStderr</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> none<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_ext_filter</p>
+
+ <p>The <code>ExtFilterOptions</code> directive specifies
+ special processing options for <code>mod_ext_filter</code>.
+ <em>Option</em> can be one of</p>
+
+ <dl>
+ <dt>DebugLevel=<em>n</em></dt>
+
+ <dd>
+ The <samp>DebugLevel</samp> keyword allows you to specify
+ the level of debug messages generated by
+ <code>mod_ext_filter</code>. By default, no debug messages
+ are generated. This is equivalent to
+ <samp>DebugLevel=0</samp>. With higher numbers, more debug
+ messages are generated, and server performance will be
+ degraded. The actual meanings of the numeric values are
+ described with the definitions of the DBGLVL_ constants
+ near the beginning of <code>mod_ext_filter.c</code>.
+
+ <p>Note: The core directive LogLevel should be used to
+ cause debug messages to be stored in the Apache error
+ log.</p>
+ </dd>
+
+ <dt>LogStderr | NoLogStderr</dt>
+
+ <dd>The <samp>LogStderr</samp> keyword specifies that
+ messages written to standard error by the external filter
+ program will be saved in the Apache error log.
+ <samp>NoLogStderr</samp> disables this feature.</dd>
+ </dl>
+ <br />
+ <br />
+ Example:
+<pre>
ExtFilterOptions LogStderr DebugLevel=0
- </PRE>
-
- Messages written to the filter's standard error will be stored in the Apache
- error log. No debug messages will be generated by
- <CODE>mod_ext_filter</CODE>.
+
+</pre>
+ Messages written to the filter's standard error will be stored
+ in the Apache error log. No debug messages will be generated by
+ <code>mod_ext_filter</code>.
- <P>
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_file_cache.html b/docs/manual/mod/mod_file_cache.html
index 8e8b34325b..e684f7ed71 100644
--- a/docs/manual/mod/mod_file_cache.html
+++ b/docs/manual/mod/mod_file_cache.html
@@ -1,268 +1,223 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_file_cache</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_file_cache</H1>
- <P>
- <STRONG>This module should be used with care. You can easily create a
- broken site using mod_file_cache, so read this document
- carefully.</STRONG>
- </P>
-
- <P>
- <EM>Caching</EM> frequently requested files that change very
- infrequently is a technique for reducing server load. mod_file_cache
- provides two techniques for caching frequently requested
- <EM>static</EM> files.
- Through configuration directives, you can direct mod_file_cache
- to either open then mmap()a file, or to pre-open a file and save
- the file's open <EM>file handle</EM>. Both techniques reduce server
- load when processing requests for these files by doing part of the
- work (specifically, the file I/O) for serving the file when the server
- is started rather than during each request.
- </P>
-
- <P>
- <CODE>mod_file_cache</CODE> is not compiled into the server by
- default. To use <CODE>mod_file_cache</CODE> you have to enable the
- following line in the server build <CODE>Configuration</CODE> file:
- <PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_file_cache</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_file_cache</h1>
+
+ <p><strong>This module should be used with care. You can easily
+ create a broken site using mod_file_cache, so read this
+ document carefully.</strong></p>
+
+ <p><em>Caching</em> frequently requested files that change very
+ infrequently is a technique for reducing server load.
+ mod_file_cache provides two techniques for caching frequently
+ requested <em>static</em> files. Through configuration
+ directives, you can direct mod_file_cache to either open then
+ mmap()a file, or to pre-open a file and save the file's open
+ <em>file handle</em>. Both techniques reduce server load when
+ processing requests for these files by doing part of the work
+ (specifically, the file I/O) for serving the file when the
+ server is started rather than during each request.</p>
+
+ <p><code>mod_file_cache</code> is not compiled into the server
+ by default. To use <code>mod_file_cache</code> you have to
+ enable the following line in the server build
+ <code>Configuration</code> file:</p>
+<pre>
AddModule modules/experimental/mod_file_cache.o
- </PRE>
- </P>
-
- <P>
- Notice: You cannot use this for speeding up CGI programs or other files
- which are served by special content handlers. It can only be used for
- regular files which are usually served by the Apache core content handler.
- </P>
-
- <P>
- This module is an extension of and borrows heavily from the
- mod_mmap_static module in Apache 1.3.
- </P>
- <H2>Summary</H2>
- <P>
- <CODE>mod_file_cache</CODE> caches a list of statically configured
- files via <CODE>MMapFile</CODE> or <CODE>CacheFile</CODE> directives
- in the main server configuration.
- </P>
-
- <P>
- Not all platforms support both directives. For
- example, Apache on Windows does not currently support the MMapStatic
- directive, while other platforms, like AIX, support both. You will
- receive an error message in the server error log if you attempt to
- use an unsupported directive. If given an unsupported directive, the
- server will start but the file will not be cached. On platforms that
- support both directives, you should experiment with both to see
- which works best for you.
- </P>
-
- <H3><CODE>MmapFile</CODE> Directive </H3>
- <P>
- The <CODE>MmapFile</CODE> directive of <CODE>mod_file_cache</CODE>
- maps a list of statically configured files into memory through the
- system call <CODE>mmap()</CODE>. This system call is available on
- most modern Unix derivates, but not on all. There are sometimes
- system-specific limits on the size and number of files that can be
- mmap()d, experimentation is probably the easiest way to find out.
- </P>
- <P>
- This mmap()ing is done once at server start or restart, only. So whenever
- one of the mapped files changes on the filesystem you <EM>have</EM> to
- restart the server (see the <A HREF="../stopping.html">Stopping and
- Restarting</A> documentation). To reiterate that point: if the
- files are modified <EM>in place</EM> without restarting the server
- you may end up serving requests that are completely bogus. You
- should update files by unlinking the old copy and putting a new
- copy in place. Most tools such as <CODE>rdist</CODE> and
- <CODE>mv</CODE> do this. The reason why this modules doesn't take
- care of changes to the files is that this check would need an extra
- <CODE>stat()</CODE> every time which is a waste and against the
- intent of I/O reduction.
- </P>
-
- <H3><CODE>CacheFile</CODE> Directive </H3>
- <P>
- The <CODE>CacheFile</CODE> directive of <CODE>mod_file_cache</CODE>
- opens an active <EM>handle</EM> or <EM>file descriptor</EM> to the
- file (or files) listed in the configuration directive and places
- these open file handles in the cache. When the file is requested,
- the server retrieves the handle from the cache and passes it to the
- sendfile() (or TransmitFile() on Windows), socket API.
- </P>
- <P>
- Insert more details about sendfile API...
- </P>
- <P>
- This file handle caching is done once at server start or restart,
- only. So whenever one of the cached files changes on the filesystem
- you <EM>have</EM> to restart the server (see the <A
- HREF="../stopping.html">Stopping and Restarting</A> documentation).
- To reiterate that point: if the files are modified <EM>in
- place</EM> without restarting the server you may end up serving
- requests that are completely bogus. You should update files by
- unlinking the old copy and putting a new copy in place. Most tools
- such as <CODE>rdist</CODE> and <CODE>mv</CODE> do this.
- </P>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#mmapfile">MMapFile</A>
- </LI>
- <LI><A HREF="#cachefile">CacheFile</A>
- </LI>
- </UL>
-
- <HR>
-
- <H2><A NAME="mmapfile">MMapFile</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> MMapFile <EM>filename</EM> [<em>filename</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server-config
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>Not applicable</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_file_cache
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Only in Apache 1.3 (via
- mod_mmap_statis) or later.
-
- <P>
- The <CODE>MMapFile</CODE> directive maps one or more files (given as
- whitespace separated arguments) into memory at server startup time. They
- are automatically unmapped on a server shutdown. When the files have changed
- on the filesystem at least a HUP or USR1 signal should be send to the server
- to re-mmap them.
- </P>
-
- <P>
- Be careful with the <EM>filename</EM> arguments: They have to literally
- match the filesystem path Apache's URL-to-filename translation handlers
- create. We cannot compare inodes or other stuff to match paths through
- symbolic links <EM>etc.</EM> because that again would cost extra <CODE>stat()</CODE>
- system calls which is not acceptable. This module may or may not work
- with filenames rewritten by <CODE>mod_alias</CODE> or
- <CODE>mod_rewrite</CODE>.
- </P>
-
- Example:
-
- <PRE>
+
+</pre>
+ <br />
+ <br />
+
+
+ <p>Notice: You cannot use this for speeding up CGI programs or
+ other files which are served by special content handlers. It
+ can only be used for regular files which are usually served by
+ the Apache core content handler.</p>
+
+ <p>This module is an extension of and borrows heavily from the
+ mod_mmap_static module in Apache 1.3.</p>
+
+ <h2>Summary</h2>
+
+ <p><code>mod_file_cache</code> caches a list of statically
+ configured files via <code>MMapFile</code> or
+ <code>CacheFile</code> directives in the main server
+ configuration.</p>
+
+ <p>Not all platforms support both directives. For example,
+ Apache on Windows does not currently support the MMapStatic
+ directive, while other platforms, like AIX, support both. You
+ will receive an error message in the server error log if you
+ attempt to use an unsupported directive. If given an
+ unsupported directive, the server will start but the file will
+ not be cached. On platforms that support both directives, you
+ should experiment with both to see which works best for
+ you.</p>
+
+ <h3><code>MmapFile</code> Directive</h3>
+
+ <p>The <code>MmapFile</code> directive of
+ <code>mod_file_cache</code> maps a list of statically
+ configured files into memory through the system call
+ <code>mmap()</code>. This system call is available on most
+ modern Unix derivates, but not on all. There are sometimes
+ system-specific limits on the size and number of files that can
+ be mmap()d, experimentation is probably the easiest way to find
+ out.</p>
+
+ <p>This mmap()ing is done once at server start or restart,
+ only. So whenever one of the mapped files changes on the
+ filesystem you <em>have</em> to restart the server (see the <a
+ href="../stopping.html">Stopping and Restarting</a>
+ documentation). To reiterate that point: if the files are
+ modified <em>in place</em> without restarting the server you
+ may end up serving requests that are completely bogus. You
+ should update files by unlinking the old copy and putting a new
+ copy in place. Most tools such as <code>rdist</code> and
+ <code>mv</code> do this. The reason why this modules doesn't
+ take care of changes to the files is that this check would need
+ an extra <code>stat()</code> every time which is a waste and
+ against the intent of I/O reduction.</p>
+
+ <h3><code>CacheFile</code> Directive</h3>
+
+ <p>The <code>CacheFile</code> directive of
+ <code>mod_file_cache</code> opens an active <em>handle</em> or
+ <em>file descriptor</em> to the file (or files) listed in the
+ configuration directive and places these open file handles in
+ the cache. When the file is requested, the server retrieves the
+ handle from the cache and passes it to the sendfile() (or
+ TransmitFile() on Windows), socket API.</p>
+
+ <p>Insert more details about sendfile API...</p>
+
+ <p>This file handle caching is done once at server start or
+ restart, only. So whenever one of the cached files changes on
+ the filesystem you <em>have</em> to restart the server (see the
+ <a href="../stopping.html">Stopping and Restarting</a>
+ documentation). To reiterate that point: if the files are
+ modified <em>in place</em> without restarting the server you
+ may end up serving requests that are completely bogus. You
+ should update files by unlinking the old copy and putting a new
+ copy in place. Most tools such as <code>rdist</code> and
+ <code>mv</code> do this.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#mmapfile">MMapFile</a></li>
+
+ <li><a href="#cachefile">CacheFile</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="mmapfile" name="mmapfile">MMapFile</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MMapFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server-config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_file_cache<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Only in Apache
+ 1.3 (via mod_mmap_statis) or later.</p>
+
+ <p>The <code>MMapFile</code> directive maps one or more files
+ (given as whitespace separated arguments) into memory at server
+ startup time. They are automatically unmapped on a server
+ shutdown. When the files have changed on the filesystem at
+ least a HUP or USR1 signal should be send to the server to
+ re-mmap them.</p>
+
+ <p>Be careful with the <em>filename</em> arguments: They have
+ to literally match the filesystem path Apache's URL-to-filename
+ translation handlers create. We cannot compare inodes or other
+ stuff to match paths through symbolic links <em>etc.</em>
+ because that again would cost extra <code>stat()</code> system
+ calls which is not acceptable. This module may or may not work
+ with filenames rewritten by <code>mod_alias</code> or
+ <code>mod_rewrite</code>.</p>
+ Example:
+<pre>
MMapFile /usr/local/apache/htdocs/index.html
- </PRE>
-
-<hr>
-
- <H2><A NAME="cachefile">CacheFile</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CacheFile <EM>filename</EM> [<em>filename</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server-config
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>Not applicable</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_file_cache
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Only available in Apache 2.0 or later.
-
- <P>
- The <CODE>CacheFile</CODE> directive opens handles to one or more
- files (given as whitespace separated arguments) and places these
- handles into the cache at server startup time. Handles to cached
- files are automatically closed on a server shutdown. When the files
- have changed on the filesystem, the server should be restarted to
- to re-cache them.
- </P>
-
- <P>
- Be careful with the <EM>filename</EM> arguments: They have to literally
- match the filesystem path Apache's URL-to-filename translation handlers
- create. We cannot compare inodes or other stuff to match paths through
- symbolic links <EM>etc.</EM> because that again would cost extra <CODE>stat()</CODE>
- system calls which is not acceptable. This module may or may not work
- with filenames rewritten by <CODE>mod_alias</CODE> or
- <CODE>mod_rewrite</CODE>.
- </P>
-
- Example:
-
- <PRE>
+
+</pre>
+ <hr />
+
+ <h2><a id="cachefile" name="cachefile">CacheFile</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CacheFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server-config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_file_cache<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Only available
+ in Apache 2.0 or later.</p>
+
+ <p>The <code>CacheFile</code> directive opens handles to one or
+ more files (given as whitespace separated arguments) and places
+ these handles into the cache at server startup time. Handles to
+ cached files are automatically closed on a server shutdown.
+ When the files have changed on the filesystem, the server
+ should be restarted to to re-cache them.</p>
+
+ <p>Be careful with the <em>filename</em> arguments: They have
+ to literally match the filesystem path Apache's URL-to-filename
+ translation handlers create. We cannot compare inodes or other
+ stuff to match paths through symbolic links <em>etc.</em>
+ because that again would cost extra <code>stat()</code> system
+ calls which is not acceptable. This module may or may not work
+ with filenames rewritten by <code>mod_alias</code> or
+ <code>mod_rewrite</code>.</p>
+ Example:
+<pre>
CacheFile /usr/local/apache/htdocs/index.html
- </PRE>
-
- <P>
- <STRONG>Note</STRONG>: don't bother asking for a for a directive which
- recursively caches all the files in a directory. Try this
- instead...
- See the <A HREF="core.html#include">Include</A> directive, and consider this command:
- <PRE>
+
+</pre>
+
+ <p><strong>Note</strong>: don't bother asking for a for a
+ directive which recursively caches all the files in a
+ directory. Try this instead... See the <a
+ href="core.html#include">Include</a> directive, and consider
+ this command:</p>
+<pre>
find /www/htdocs -type f -print \
| sed -e 's/.*/mmapfile &amp;/' &gt; /www/conf/mmap.conf
- </PRE>
+
+</pre>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_headers.html b/docs/manual/mod/mod_headers.html
index 6b7b887c1c..be2e1f80bd 100644
--- a/docs/manual/mod/mod_headers.html
+++ b/docs/manual/mod/mod_headers.html
@@ -1,297 +1,300 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_headers</H1>
-
-<p>This module provides for the customization of HTTP request and
-response headers.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_headers.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> headers_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.2 and later.
-RequestHeader appeared in Apache 2.0.
-</P>
-
-<h2>Summary</h2>
-
-This module provides directives to control and modify HTTP
-request and response headers. Headers can be merged,
-replaced or removed.
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#requestheader">RequestHeader</A>
-<LI><A HREF="#header">Header</A>
-</UL>
-
-<H2>Order of Processing</H2>
-
-<p>The directives provided by mod_header can occur almost anywhere within
-the server configuration. They are 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>
-
-<P>The 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>
-
-<p>Order is important. These two headers have a different effect if
-reversed:</p>
-
-<blockquote><code>
-RequestHeader append MirrorID "mirror 12"<br>
-RequestHeader unset MirrorID
-</code></blockquote>
-
-<p>This way round, the MirrorID header is not set. If reversed, the
-MirrorID header is set to "mirror 12".</P>
-
-<H2>Examples</H2>
-<OL>
-<LI>Copy all request headers that begin with "TS" to the response headers:</LI>
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_headers</h1>
+
+ <p>This module provides for the customization of HTTP request
+ and response headers.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_headers.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ headers_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.2 and later. RequestHeader appeared in Apache 2.0.</p>
+
+ <h2>Summary</h2>
+ This module provides directives to control and modify HTTP
+ request and response headers. Headers can be merged, replaced
+ or removed.
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#requestheader">RequestHeader</a></li>
+
+ <li><a href="#header">Header</a></li>
+ </ul>
+
+ <h2>Order of Processing</h2>
+
+ <p>The directives provided by mod_header can occur almost
+ anywhere within the server configuration. They are 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>
+
+ <p>The directives are processed in the following order:</p>
+
+ <ol>
+ <li>main server</li>
+
+ <li>virtual host</li>
+
+ <li>&lt;Directory&gt; sections and .htaccess</li>
+
+ <li>&lt;Location&gt;</li>
+
+ <li>&lt;Files&gt;</li>
+ </ol>
+
+ <p>Order is important. These two headers have a different
+ effect if reversed:</p>
+
+ <blockquote>
+ <code>RequestHeader append MirrorID "mirror 12"<br />
+ RequestHeader unset MirrorID</code>
+ </blockquote>
+
+ <p>This way round, the MirrorID header is not set. If reversed,
+ the MirrorID header is set to "mirror 12".</p>
+
+ <h2>Examples</h2>
+
+ <ol>
+ <li>Copy all request headers that begin with "TS" to the
+ response headers:</li>
+
+ <li style="list-style: none">
+<pre>
Header echo ^TS*
-</PRE>
-
-<LI>Add a header, MyHeader, to the response including a timestamp for when
-the request was received and how long it took to begin serving the
-request. This header can be used by the client to intuit load on
-the server or in isolating bottlenecks between the client and the
-server.</LI>
-<PRE>
+</pre>
+ </li>
+
+ <li>Add a header, MyHeader, to the response including a
+ timestamp for when the request was received and how long it
+ took to begin serving the request. This header can be used by
+ the client to intuit load on the server or in isolating
+ bottlenecks between the client and the server.</li>
+
+ <li style="list-style: none">
+<pre>
Header add MyHeader "%D %t"
-</PRE>
-results in this header being added to the response:
-<PRE>
+</pre>
+ results in this header being added to the response:
+<pre>
MyHeader: D=3775428 t=991424704447256
-</PRE>
-<LI>Say hello to Joe</LI>
-<PRE>
+</pre>
+ </li>
+
+ <li>Say hello to Joe</li>
+
+ <li style="list-style: none">
+<pre>
Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
-</PRE>
-results in this header being added to the response:
-<PRE>
+</pre>
+ results in this header being added to the response:
+<pre>
MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.
-</PRE>
-
-<LI>Conditionally send MyHeader on the response if and only if header
-"MyRequestHeader" is present on the request. This is useful for
-constructing headers in response to some client stimulus. Note that
-this example requires the services of the mod_setenvif module.</LI>
-<PRE>
- SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<BR>
+</pre>
+ </li>
+
+ <li>Conditionally send MyHeader on the response if and only
+ if header "MyRequestHeader" is present on the request. This
+ is useful for constructing headers in response to some client
+ stimulus. Note that this example requires the services of the
+ mod_setenvif module.</li>
+
+ <li style="list-style: none">
+<pre>
+ SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
-</PRE>
-If the header "MyRequestHeader: value" is present on the HTTP request, the response
-will contain the following header:
-<PRE>
+</pre>
+ If the header "MyRequestHeader: value" is present on the
+ HTTP request, the response will contain the following
+ header:
+<pre>
MyHeader: D=3775428 t=991424704447256 mytext
-</PRE>
-</OL>
-
-<HR>
-
-<H2><A NAME="requestheader">RequestHeader</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RequestHeader set|append|add
- <EM>header</EM> <EM>value</EM><BR>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RequestHeader unset <EM>header</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, access.conf,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_header<P>
-
-<p>This directive can replace, merge or remove HTTP request
-headers. The header is modified just before the content handler is
-run, allowing incoming headers to be modified. The action it performs
-is determined by the first argument. This can be one of the following
-values:</p>
-
-<UL>
-<LI><STRONG>set</STRONG><BR>
- The request header is set, replacing any previous header with this name
-
-<LI><STRONG>append</STRONG><BR>
- The request 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><STRONG>add</STRONG><BR>
- The request 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><STRONG>unset</STRONG><BR>
- The request header of this name is removed, if it exists. If there are
- multiple headers of the same name, all will be removed.
-</UL>
-
-<p>This argument is followed by a header name, which can include the
-final colon, but it is not required. Case is ignored. For
-<code>add</code>, <code>append</code> and <code>set</code> 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.</p>
-
-<p>The <code>RequestHeader</code> directive is processed just before
-the request is run by its handler in the fixup phase. This should
-allow headers generated by the browser, or by Apache input filters to
-be overridden or modified.</p>
-
-<HR>
-
-<H2><A NAME="header">Header</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Header set|append|add
- <EM>header</EM> <EM>value</EM> <EM>[env=[!]environment-variable]</EM><BR>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Header unset <EM>header</EM><BR>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Header echo <EM>header</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, access.conf,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_header<P>
-
-<p>This directive can replace, merge or remove HTTP response
-headers. The header is modified just after the content handler and
-output filters are run, allowing outgoing headers to be modified. The
-action it performs is determined by the first argument. This can be
-one of the following values:</p>
-
-<UL>
-<LI><STRONG>set</STRONG><BR>
- The response header is set, replacing any previous header with this name.
- The <EM>value</EM> may be a format string.
-
-<LI><STRONG>append</STRONG><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><STRONG>add</STRONG><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><STRONG>unset</STRONG><BR>
- The response header of this name is removed, if it exists. If there are
- multiple headers of the same name, all will be removed.
-
-<LI><STRONG>echo</STRONG><BR>
- Request headers with this name are echoed back in the response headers.
- <EM>header</EM> may be a regular expression.
-</UL>
-
-<p>This argument is followed by a <EM>header</EM> name, which can include the
-final colon, but it is not required. Case is ignored for set, append, add
-and unset. The <EM>header</EM> name for echo is case sensitive and may be a
-regular expression.</p>
-
-<P>For <code>add</code>, <code>append</code> and <code>set</code> a
-<EM>value</EM> is specified as the third argument. If <EM>value</EM>
-contains spaces, it should be surrounded by doublequotes.
-<EM>value</EM> may be a character string, a string containing format
-specifiers or a combination of both. The following format specifiers
-are supported in <EM>value</EM>:
-<PRE>
-%t: The time the request was received in Universal Coordinated Time
- since the epoch (Jan. 1, 1970) measured in microseconds. The
- value is preceded by "t=".
+</pre>
+ </li>
+ </ol>
+ <hr />
+
+ <h2><a id="requestheader"
+ name="requestheader">RequestHeader</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RequestHeader
+ set|append|add <em>header</em> <em>value</em><br />
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RequestHeader unset
+ <em>header</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, access.conf, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_header
+
+ <p>This directive can replace, merge or remove HTTP request
+ headers. The header is modified just before the content handler
+ is run, allowing incoming headers to be modified. The action it
+ performs is determined by the first argument. This can be one
+ of the following values:</p>
+
+ <ul>
+ <li><strong>set</strong><br />
+ The request header is set, replacing any previous header
+ with this name</li>
+
+ <li><strong>append</strong><br />
+ The request 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>
+
+ <li><strong>add</strong><br />
+ The request 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>
+
+ <li><strong>unset</strong><br />
+ The request header of this name is removed, if it exists. If
+ there are multiple headers of the same name, all will be
+ removed.</li>
+ </ul>
+
+ <p>This argument is followed by a header name, which can
+ include the final colon, but it is not required. Case is
+ ignored. For <code>add</code>, <code>append</code> and
+ <code>set</code> 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.</p>
+
+ <p>The <code>RequestHeader</code> directive is processed just
+ before the request is run by its handler in the fixup phase.
+ This should allow headers generated by the browser, or by
+ Apache input filters to be overridden or modified.</p>
+ <hr />
+
+ <h2><a id="header" name="header">Header</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Header set|append|add
+ <em>header</em> <em>value</em>
+ <em>[env=[!]environment-variable]</em><br />
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Header unset
+ <em>header</em><br />
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Header echo
+ <em>header</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, access.conf, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_header
+
+ <p>This directive can replace, merge or remove HTTP response
+ headers. The header is modified just after the content handler
+ and output filters are run, allowing outgoing headers to be
+ modified. The action it performs is determined by the first
+ argument. This can be one of the following values:</p>
+
+ <ul>
+ <li><strong>set</strong><br />
+ The response header is set, replacing any previous header
+ with this name. The <em>value</em> may be a format
+ string.</li>
+
+ <li><strong>append</strong><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>
+
+ <li><strong>add</strong><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>
+
+ <li><strong>unset</strong><br />
+ The response header of this name is removed, if it exists.
+ If there are multiple headers of the same name, all will be
+ removed.</li>
+
+ <li><strong>echo</strong><br />
+ Request headers with this name are echoed back in the
+ response headers. <em>header</em> may be a regular
+ expression.</li>
+ </ul>
+
+ <p>This argument is followed by a <em>header</em> name, which
+ can include the final colon, but it is not required. Case is
+ ignored for set, append, add and unset. The <em>header</em>
+ name for echo is case sensitive and may be a regular
+ expression.</p>
+
+ <p>For <code>add</code>, <code>append</code> and
+ <code>set</code> a <em>value</em> is specified as the third
+ argument. If <em>value</em> contains spaces, it should be
+ surrounded by doublequotes. <em>value</em> may be a character
+ string, a string containing format specifiers or a combination
+ of both. The following format specifiers are supported in
+ <em>value</em>:</p>
+<pre>
+%t: The time the request was received in Universal Coordinated Time
+ since the epoch (Jan. 1, 1970) measured in microseconds. The
+ value is preceded by "t=".
%D: The time from when the request was received to the time the
headers are sent on the wire. This is a measure of the
- duration of the request. The value is preceded by "D=".
-</PRE>
-
-<p>When the <code>Header</code> directive is used with the
-<code>add</code>, <code>append</code>, or <code>set</code> argument, a
-fourth argument may be used to specify conditions under which the
-action will be taken. If the <a href="../env.html">environment
-variable</a> specified in the <code>env=...</code> argument exists (or
-if the environment variable does not exist and <code>env=!...</code>
-is specified) then the action specified by the <code>Header</code>
-directive will take effect. Otherwise, the directive will have no
-effect on the request.</p>
-
-<p>The Header directives are processed just before the response is
-sent to the network. These means that it is possible to set and/or
-override most headers, except for those headers added by the header
-filter.</p>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+ duration of the request. The value is preceded by "D=".
+</pre>
+
+ <p>When the <code>Header</code> directive is used with the
+ <code>add</code>, <code>append</code>, or <code>set</code>
+ argument, a fourth argument may be used to specify conditions
+ under which the action will be taken. If the <a
+ href="../env.html">environment variable</a> specified in the
+ <code>env=...</code> argument exists (or if the environment
+ variable does not exist and <code>env=!...</code> is specified)
+ then the action specified by the <code>Header</code> directive
+ will take effect. Otherwise, the directive will have no effect
+ on the request.</p>
+
+ <p>The Header directives are processed just before the response
+ is sent to the network. These means that it is possible to set
+ and/or override most headers, except for those headers added by
+ the header filter.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_imap.html b/docs/manual/mod/mod_imap.html
index d8e6719feb..a3f1dc2cd2 100644
--- a/docs/manual/mod/mod_imap.html
+++ b/docs/manual/mod/mod_imap.html
@@ -1,349 +1,363 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_imap</H1>
-
-<p>This module provides for server-side imagemap processing.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_imap.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> imap_module
-<BR>
-<A
-HREF="module-dict.html#compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.1 and later.
-</P>
-
-
-
-<H2>Summary</H2>
-
-<p>This module processes <CODE>.map</CODE> files, thereby 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.</p>
-
-<p>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>Directives</H2>
-<UL>
-<LI><A HREF="#imapmenu">ImapMenu</A>
-<LI><A HREF="#imapdefault">ImapDefault</A>
-<LI><A HREF="#imapbase">ImapBase</A>
-</UL>
-
-<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>
-
-
-<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>
-
-<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/imagemap1.map"&gt; <BR>
-&lt;IMG ISMAP SRC="/images/imagemap1.gif"&gt; <BR>
-&lt;/A&gt;
-</CODE></BLOCKQUOTE><P>
-
-
-<hr>
-
-<H2><A NAME="imapmenu">ImapMenu</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ImapMenu
- none|formatted|semiformatted|unformatted<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_imap<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> 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>
-
-<hr>
-
-<H2><A NAME="imapdefault">ImapDefault</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ImapDefault
- error|nocontent|map|referer|<em>URL</em><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_imap<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> 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. Its 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.
-
-<hr>
-
-<H2><A NAME="imapbase">ImapBase</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ImapBase map|referer|<em>URL</em><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Indexes<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_imap<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> 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. Its 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>.
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_imap</h1>
+
+ <p>This module provides for server-side imagemap
+ processing.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_imap.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ imap_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module processes <code>.map</code> files, thereby
+ 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.</p>
+
+ <p>The following directive will activate files ending with
+ <code>.map</code> as imagemap files:</p>
+
+ <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>Directives</h2>
+
+ <ul>
+ <li><a href="#imapmenu">ImapMenu</a></li>
+
+ <li><a href="#imapdefault">ImapDefault</a></li>
+
+ <li><a href="#imapbase">ImapBase</a></li>
+ </ul>
+
+ <h2>New Features</h2>
+ The imagemap module adds some new features that were not
+ possible with previously distributed imagemap programs.
+
+ <ul>
+ <li>URL references relative to the Referer: information.</li>
+
+ <li>Default &lt;BASE&gt; assignment through a new map
+ directive <code>base</code>.</li>
+
+ <li>No need for <code>imagemap.conf</code> file.</li>
+
+ <li>Point references.</li>
+
+ <li>Configurable generation of imagemap menus.</li>
+ </ul>
+ <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</dt>
+
+ <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.</dd>
+
+ <dt><code>default</code> Directive</dt>
+
+ <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.</dd>
+
+ <dt><code>poly</code> Directive</dt>
+
+ <dd>Takes three to one-hundred points, and is obeyed if the
+ user selected coordinates fall within the polygon defined by
+ these points.</dd>
+
+ <dt><code>circle</code></dt>
+
+ <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.</dd>
+
+ <dt><code>rect</code> Directive</dt>
+
+ <dd>Takes the coordinates of two opposing corners of a
+ rectangle. Obeyed if the point selected is within this
+ rectangle.</dd>
+
+ <dt><code>point</code> Directive</dt>
+
+ <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.</dd>
+ </dl>
+
+ <h3>Values</h3>
+ The values for each of the directives can any of the following:
+
+
+ <dl>
+ <dt>a URL</dt>
+
+ <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.</dd>
+
+ <dt><code>map</code></dt>
+
+ <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'.</dd>
+
+ <dt><code>menu</code></dt>
+
+ <dd>Synonymous with <code>map</code>.</dd>
+
+ <dt><code>referer</code></dt>
+
+ <dd>Equivalent to the URL of the referring document. Defaults
+ to <code>http://servername/</code> if no Referer: header was
+ present.</dd>
+
+ <dt><code>nocontent</code></dt>
+
+ <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>.</dd>
+
+ <dt><code>error</code></dt>
+
+ <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>.</dd>
+ </dl>
+
+ <h3>Coordinates</h3>
+
+ <dl>
+ <dt><code>0,0 200,200</code></dt>
+
+ <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.</dd>
+ </dl>
+
+ <h3>Quoted Text</h3>
+
+ <dl>
+ <dt><code>"Menu Text"</code></dt>
+
+ <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.</dd>
+ </dl>
+
+ <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>
+
+ <h2>Referencing your mapfile</h2>
+
+ <blockquote>
+ <code>&lt;A HREF="/maps/imagemap1.map"&gt;<br />
+ &lt;IMG ISMAP SRC="/images/imagemap1.gif"&gt;<br />
+ &lt;/A&gt;</code>
+ </blockquote>
+ <hr />
+
+ <h2><a id="imapmenu" name="imapmenu">ImapMenu</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ImapMenu
+ none|formatted|semiformatted|unformatted<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_imap<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> 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.</p>
+
+ <dl>
+ <dt><code>none</code></dt>
+
+ <dd>If ImapMenu is <code>none</code>, no menu is generated,
+ and the <code>default</code> action is performed.</dd>
+
+ <dt><code>formatted</code></dt>
+
+ <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.</dd>
+
+ <dt><code>semiformatted</code></dt>
+
+ <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.</dd>
+
+ <dt><code>unformatted</code></dt>
+
+ <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.</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="imapdefault" name="imapdefault">ImapDefault</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ImapDefault
+ error|nocontent|map|referer|<em>URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_imap<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> 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. Its 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>
+ <hr />
+
+ <h2><a id="imapbase" name="imapbase">ImapBase</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ImapBase
+ map|referer|<em>URL</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Indexes<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_imap<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> 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. Its 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>.
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_include.html b/docs/manual/mod/mod_include.html
index 7f137cf973..8d9623cb46 100644
--- a/docs/manual/mod/mod_include.html
+++ b/docs/manual/mod/mod_include.html
@@ -1,329 +1,396 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_include</H1>
-
-<p>This module provides for server-parsed html documents.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_include.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> includes_module
-</P>
-
-<h2>Summary</h2>
-
-<p>This module provides a filter which will process files before they
-are sent to the client. The processing is controlled by specially
-formated SGML comments, referred to as <em>elements</em>. These
-elements allow conditional text, the inclusion other files or
-programs, as well as the setting and printing of environment
-variables.</p>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#xbithack">XBitHack</A>
-</UL>
-
-<p>See also: <a href="core.html#options">Options</a>
-and <a href="core.html.html#SetOutputFilter">SetOutputFilter</a>.</p>
-
-
-<H2>Enabling Server-Side Includes</H2>
-
-<p>Server Side Includes are implemented by the <code>INCLUDES</code>
-<a href="../filter.html">filter</a>. 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>:
-</p>
-
-<blockquote><code>
-AddType text/html .shtml<br>
-&lt;FilesMatch "\.shtml(\..+)?$"&gt;<br>
-&nbsp;&nbsp;SetOutputFilter INCLUDES<br>
-&lt;/FilesMatch&gt;
-</code></blockquote>
-
-<p>Be careful to properly scope the INCLUDES filter to process only
-the correct files. The filter is <strong>not</strong> restricted to
-processing only HTML files. So, for example, if the INCLUDES filter
-is activated using a <code>&lt;Directory&gt;</code> section and that
-directory includes GIF files, mod_include will process the GIF files.
-This can have two adverse consequences: 1. there will be extra
-overhead in serving these files, and 2. these files could become
-corrupted if they happen to contain something that looks like an SSI
-element.</p>
-
-<p>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):</p>
-
-<blockquote><code>
-Options +Includes
-</code></blockquote>
-
-<p>For backwards compatibility, the <code>server-parsed</code> <a
-href="../handler.html">handler</a> also activates the INCLUDES filter.
-As well, Apache will activate the INCLUDES filter for any document
-with mime type <code>text/x-server-parsed-html</code> or
-<code>text/x-server-parsed-html3</code> (and the resulting output will
-have the mime type <code>text/html</code>).</p>
-
-<p>For more information, see our <a href="../howto/ssi.html">Tutorial
-on Server Side Includes</a>.</p>
-
-<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><a name="echo">echo</a></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.
-<DT>encoding
-<DD>Specifies how Apache should encode special characters contained
-in the variable before outputting them. If set to "none", no encoding
-will be done. If set to "url", then URL encoding (also known as
-%-encoding; this is appropriate for use within URLs in links, etc.)
-will be performed. At the start of an <CODE>echo</CODE> element,
-the default is set to "entity", resulting in entity encoding (which
-is appropriate in the context of a block-level HTML element, eg.
-a paragraph of text). This can be changed by adding an
-<CODE>encoding</CODE> attribute, which will remain in effect until
-the next <CODE>encoding</CODE> attribute is encountered or the
-element ends, whichever comes first. Note that the
-<CODE>encoding</CODE> attribute must <EM>precede</EM> the corresponding
-<CODE>var</CODE> attribute to be effective, and that only special
-characters as defined in the ISO-8859-1 character encoding will be
-encoded. This encoding process may not have the desired result if
-a different character encoding is in use.
-Apache 1.3.12 and above; previous versions do no encoding.
-
-</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.
- Starting with Apache 1.3.12, special characters are entity encoded (see the
- <A HREF="#echo"><CODE>echo</CODE></A> element for details) before being
- output. 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>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_include</h1>
+
+ <p>This module provides for server-parsed html documents.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_include.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ includes_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides a filter which will process files
+ before they are sent to the client. The processing is
+ controlled by specially formated SGML comments, referred to as
+ <em>elements</em>. These elements allow conditional text, the
+ inclusion other files or programs, as well as the setting and
+ printing of environment variables.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#xbithack">XBitHack</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#options">Options</a> and <a
+ href="core.html.html#SetOutputFilter">SetOutputFilter</a>.</p>
+
+ <h2>Enabling Server-Side Includes</h2>
+
+ <p>Server Side Includes are implemented by the
+ <code>INCLUDES</code> <a href="../filter.html">filter</a>. 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>:</p>
+
+ <blockquote>
+ <code>AddType text/html .shtml<br />
+ &lt;FilesMatch "\.shtml(\..+)?$"&gt;<br />
+ &nbsp;&nbsp;SetOutputFilter INCLUDES<br />
+ &lt;/FilesMatch&gt;</code>
+ </blockquote>
+
+ <p>Be careful to properly scope the INCLUDES filter to process
+ only the correct files. The filter is <strong>not</strong>
+ restricted to processing only HTML files. So, for example, if
+ the INCLUDES filter is activated using a
+ <code>&lt;Directory&gt;</code> section and that directory
+ includes GIF files, mod_include will process the GIF files.
+ This can have two adverse consequences: 1. there will be extra
+ overhead in serving these files, and 2. these files could
+ become corrupted if they happen to contain something that looks
+ like an SSI element.</p>
+
+ <p>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):</p>
+
+ <blockquote>
+ <code>Options +Includes</code>
+ </blockquote>
+
+ <p>For backwards compatibility, the <code>server-parsed</code>
+ <a href="../handler.html">handler</a> also activates the
+ INCLUDES filter. As well, Apache will activate the INCLUDES
+ filter for any document with mime type
+ <code>text/x-server-parsed-html</code> or
+ <code>text/x-server-parsed-html3</code> (and the resulting
+ output will have the mime type <code>text/html</code>).</p>
+
+ <p>For more information, see our <a
+ href="../howto/ssi.html">Tutorial on Server Side
+ Includes</a>.</p>
+
+ <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></dt>
+
+ <dd>
+ This command controls various aspects of the parsing. The
+ valid attributes are:
+
+ <dl>
+ <dt>errmsg</dt>
+
+ <dd>The value is a message that is sent back to the
+ client if an error occurs whilst parsing the
+ document.</dd>
+
+ <dt>sizefmt</dt>
+
+ <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.</dd>
+
+ <dt>timefmt</dt>
+
+ <dd>The value is a string to be used by the
+ <code>strftime(3)</code> library routine when printing
+ dates.</dd>
+ </dl>
+ </dd>
+
+ <dt><strong><a id="echo" name="echo">echo</a></strong></dt>
+
+ <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</dt>
+
+ <dd>The value is the name of the variable to print.</dd>
+
+ <dt>encoding</dt>
+
+ <dd>Specifies how Apache should encode special characters
+ contained in the variable before outputting them. If set
+ to "none", no encoding will be done. If set to "url",
+ then URL encoding (also known as %-encoding; this is
+ appropriate for use within URLs in links, etc.) will be
+ performed. At the start of an <code>echo</code> element,
+ the default is set to "entity", resulting in entity
+ encoding (which is appropriate in the context of a
+ block-level HTML element, eg. a paragraph of text). This
+ can be changed by adding an <code>encoding</code>
+ attribute, which will remain in effect until the next
+ <code>encoding</code> attribute is encountered or the
+ element ends, whichever comes first. Note that the
+ <code>encoding</code> attribute must <em>precede</em> the
+ corresponding <code>var</code> attribute to be effective,
+ and that only special characters as defined in the
+ ISO-8859-1 character encoding will be encoded. This
+ encoding process may not have the desired result if a
+ different character encoding is in use. Apache 1.3.12 and
+ above; previous versions do no encoding.</dd>
+ </dl>
+ </dd>
+
+ <dt><strong>exec</strong></dt>
+
+ <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</dt>
+
+ <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>
+
+ <p>If the script returns a Location: header instead of
+ output, then this will be translated into an HTML
+ anchor.</p>
+
+ <p>The <code>include virtual</code> element should be
+ used in preference to <code>exec cgi</code>.</p>
+ </dd>
+
+ <dt>cmd</dt>
+
+ <dd>The server will execute the given string using
+ <code>/bin/sh</code>. The include variables are available
+ to the command.</dd>
+ </dl>
+ </dd>
+
+ <dt><strong>fsize</strong></dt>
+
+ <dd>
+ This command prints the size of the specified file, subject
+ to the <code>sizefmt</code> format specification.
+ Attributes:
+
+ <dl>
+ <dt>file</dt>
+
+ <dd>The value is a path relative to the directory
+ containing the current document being parsed.</dd>
+
+ <dt>virtual</dt>
+
+ <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.</dd>
+ </dl>
+ </dd>
+
+ <dt><strong>flastmod</strong></dt>
+
+ <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.</dd>
+
+ <dt><strong>include</strong></dt>
+
+ <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:</p>
+
+ <dl>
+ <dt>file</dt>
+
+ <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.</dd>
+
+ <dt>virtual</dt>
+
+ <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.</dd>
+ </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.
+ </dd>
+
+ <dt><strong>printenv</strong></dt>
+
+ <dd>This prints out a listing of all existing variables and
+ their values. Starting with Apache 1.3.12, special characters
+ are entity encoded (see the <a
+ href="#echo"><code>echo</code></a> element for details)
+ before being output. No attributes.</dd>
+
+ <dd>For example: <code>&lt;!--#printenv --&gt;</code></dd>
+
+ <dd>Apache 1.2 and above.</dd>
+
+ <dt><strong>set</strong></dt>
+
+ <dd>
+ This sets the value of a variable. Attributes:
+
+ <dl>
+ <dt>var</dt>
+
+ <dd>The name of the variable to set.</dd>
+
+ <dt>value</dt>
+
+ <dd>The value to give a variable.</dd>
+ </dl>
+ For example: <code>&lt;!--#set var="category" value="help"
+ --&gt;</code>
+ </dd>
+
+ <dd>Apache 1.2 and above.</dd>
+ </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</dt>
-<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:
+ <dd>The current date in Greenwich Mean Time.</dd>
-<PRE>
+ <dt>DATE_LOCAL</dt>
+
+ <dd>The current date in the local time zone.</dd>
+
+ <dt>DOCUMENT_NAME</dt>
+
+ <dd>The filename (excluding directories) of the document
+ requested by the user.</dd>
+
+ <dt>DOCUMENT_URI</dt>
+
+ <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.</dd>
+
+ <dt>LAST_MODIFIED</dt>
+
+ <dd>The last modification date of the document requested by
+ the user.</dd>
+ </dl>
+
+ <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:</p>
+<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:</p>
+<pre>
&lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
-</PRE>
+</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>This will result in the <samp>Zed</samp> variable being set
+ to "<samp>X_Y</samp>" if <samp>REMOTE_HOST</samp> is
+ "<samp>X</samp>" and <samp>REQUEST_METHOD</samp> is
+ "<samp>Y</samp>".</p>
-<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>
+ <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:</p>
+<pre>
&lt;!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --&gt;
in foo
&lt;!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" --&gt;
@@ -331,149 +398,152 @@ otherwise:
&lt;!--#else --&gt;
in neither
&lt;!--#endif --&gt;
-</PRE>
-
-<H2><A NAME="flowctrl">Flow Control Elements</A></H2>
-
-These are available in Apache 1.2 and above. The basic flow control
-elements are:
-
-<PRE>
- &lt;!--#if expr="<EM>test_condition</EM>" --&gt;
- &lt;!--#elif expr="<EM>test_condition</EM>" --&gt;
+</pre>
+
+ <h2><a id="flowctrl" name="flowctrl">Flow Control
+ Elements</a></h2>
+ These are available in Apache 1.2 and above. The basic flow
+ control elements are:
+<pre>
+ &lt;!--#if expr="<em>test_condition</em>" --&gt;
+ &lt;!--#elif expr="<em>test_condition</em>" --&gt;
&lt;!--#else --&gt;
&lt;!--#endif --&gt;
-</PRE>
-
-<P> The <STRONG><CODE>if</CODE></STRONG> 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 <STRONG><CODE>elif</CODE></STRONG>, <STRONG><CODE>else</CODE></STRONG>.
- or <STRONG><CODE>endif</CODE></STRONG> element is included in the
- output stream.
-
-<P> The <STRONG><CODE>elif</CODE></STRONG> or <STRONG><CODE>else</CODE></STRONG>
- statements are be used the put text into the output stream
- if the original test_condition was false. These elements
- are optional.
-
-<P> The <STRONG><CODE>endif</CODE></STRONG> element ends the
- <STRONG><CODE>if</CODE></STRONG> element and is required.
-
-<P> <EM>test_condition</EM> is one of the following:
-
-<DL>
-
-<DT><EM>string</EM><DD>true if <EM>string</EM> is not empty
-
-<DT><EM>string1</EM> = <EM>string2</EM>
- <BR>
- <EM>string1</EM> != <EM>string2</EM>
- <BR>
- <EM>string1</EM> &lt; <EM>string2</EM>
- <BR>
- <EM>string1</EM> &lt;= <EM>string2</EM>
- <BR>
- <EM>string1</EM> &gt; <EM>string2</EM>
- <BR>
- <EM>string1</EM> &gt;= <EM>string2</EM>
-
-<DD>Compare string1 with string 2. If string2 has the form <EM>/string/</EM>
- then it is compared as a regular expression.
- Regular expressions have the same syntax as those found in the
- Unix <SAMP>egrep</SAMP> command.
-
-<DT>( <EM>test_condition</EM> )
- <DD>true if <EM>test_condition</EM> is true
-<DT>! <EM>test_condition</EM>
- <DD>true if <EM>test_condition</EM> is false
-<DT><EM>test_condition1</EM> && <EM>test_condition2</EM>
- <DD>true if both <EM>test_condition1</EM> and
- <EM>test_condition2</EM> are true
-<DT><EM>test_condition1</EM> || <EM>test_condition2</EM>
- <DD>true if either <EM>test_condition1</EM> or
- <EM>test_condition2</EM> is true
-</DL>
-
-<P> "<EM>=</EM>" and "<EM>!=</EM>" bind more tightly than "<EM>&&</EM>" and
- "<EM>||</EM>".
- "<EM>!</EM>" 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: <EM>'string'</EM>.
- 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>
- <EM>string1 string2</EM> results in <EM>string1 string2</EM>
- <EM>'string1 string2'</EM> results in <EM>string1 string2</EM>
-</PRE>
-
-<H2>Using Server Side Includes for ErrorDocuments</H2>
-
-There is <A HREF="../misc/custom_errordocs.html">a document</A> which
-describes how to use the features of mod_include to offer internationalized
-customized server error documents.
-<P>
-
-<HR>
-
-<H2><A NAME="xbithack">XBitHack</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt XBitHack} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> XBitHack on|off|full<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>XBitHack off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> Options<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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>. XBitHack can take on 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><STRONG>Note:</STRONG> 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>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+
+ <p>The <strong><code>if</code></strong> 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 <strong><code>elif</code></strong>,
+ <strong><code>else</code></strong>. or
+ <strong><code>endif</code></strong> element is included in the
+ output stream.</p>
+
+ <p>The <strong><code>elif</code></strong> or
+ <strong><code>else</code></strong> statements are be used the
+ put text into the output stream if the original test_condition
+ was false. These elements are optional.</p>
+
+ <p>The <strong><code>endif</code></strong> element ends the
+ <strong><code>if</code></strong> element and is required.</p>
+
+ <p><em>test_condition</em> is one of the following:</p>
+
+ <dl>
+ <dt><em>string</em></dt>
+
+ <dd>true if <em>string</em> is not empty</dd>
+
+ <dt><em>string1</em> = <em>string2</em><br />
+ <em>string1</em> != <em>string2</em><br />
+ <em>string1</em> &lt; <em>string2</em><br />
+ <em>string1</em> &lt;= <em>string2</em><br />
+ <em>string1</em> &gt; <em>string2</em><br />
+ <em>string1</em> &gt;= <em>string2</em></dt>
+
+ <dd>Compare string1 with string 2. If string2 has the form
+ <em>/string/</em> then it is compared as a regular
+ expression. Regular expressions have the same syntax as those
+ found in the Unix <samp>egrep</samp> command.</dd>
+
+ <dt>( <em>test_condition</em> )</dt>
+
+ <dd>true if <em>test_condition</em> is true</dd>
+
+ <dt>! <em>test_condition</em></dt>
+
+ <dd>true if <em>test_condition</em> is false</dd>
+
+ <dt><em>test_condition1</em> &amp;&amp;
+ <em>test_condition2</em></dt>
+
+ <dd>true if both <em>test_condition1</em> and
+ <em>test_condition2</em> are true</dd>
+
+ <dt><em>test_condition1</em> || <em>test_condition2</em></dt>
+
+ <dd>true if either <em>test_condition1</em> or
+ <em>test_condition2</em> is true</dd>
+ </dl>
+
+ <p>"<em>=</em>" and "<em>!=</em>" bind more tightly than
+ "<em>&amp;&amp;</em>" and "<em>||</em>". "<em>!</em>" binds
+ most tightly. Thus, the following are equivalent:</p>
+<pre>
+ &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;
+ &lt;!--#if expr="($a = test1) &amp;&amp; ($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:
+ <em>'string'</em>. 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,</p>
+<pre>
+ <em>string1 string2</em> results in <em>string1 string2</em>
+ <em>'string1 string2'</em> results in <em>string1 string2</em>
+</pre>
+
+ <h2>Using Server Side Includes for ErrorDocuments</h2>
+ There is <a href="../misc/custom_errordocs.html">a document</a>
+ which describes how to use the features of mod_include to offer
+ internationalized customized server error documents.
+ <hr />
+
+ <h2><a id="xbithack" name="xbithack">XBitHack</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt XBitHack} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> XBitHack
+ on|off|full<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>XBitHack
+ off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Options<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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>. XBitHack can take on
+ the following values:</p>
+
+ <dl>
+ <dt>off</dt>
+
+ <dd>No special treatment of executable files.</dd>
+
+ <dt>on</dt>
+
+ <dd>Any file that has the user-execute bit set will be
+ treated as a server-parsed html document.</dd>
+
+ <dt>full</dt>
+
+ <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><strong>Note:</strong> 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).</p>
+ </dd>
+ </dl>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_info.html b/docs/manual/mod/mod_info.html
index 610bcee45d..4aac4425f1 100644
--- a/docs/manual/mod/mod_info.html
+++ b/docs/manual/mod/mod_info.html
@@ -1,127 +1,103 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_info</H1>
-
-<p>This module provides a comprehensive overview of the server
-configuration including all installed modules and directives in the
-configuration files.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_info.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> info_module
-<BR>
-<A
-HREF="module-dict.html#compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.1 and later.
-</P>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#addmoduleinfo">AddModuleInfo</A>
-</UL>
-
-<h2>Using mod_info</h2>
-
-<P>
-To configure it, add the following to your <CODE>httpd.conf</CODE> file.
-
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_info</h1>
+
+ <p>This module provides a comprehensive overview of the server
+ configuration including all installed modules and directives in
+ the configuration files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_info.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ info_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#addmoduleinfo">AddModuleInfo</a></li>
+ </ul>
+
+ <h2>Using mod_info</h2>
+
+ <p>To configure it, add the following to your
+ <code>httpd.conf</code> file.</p>
+<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>
-
-<H2><A NAME="addmoduleinfo">AddModuleInfo</A></H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AddModuleInfo <EM>module-name string</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_info<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3 and above<P>
-
-This allows the content of <EM>string</EM> to be shown as
-HTML interpreted,
-<STRONG>Additional Information</STRONG> for the module <EM>module-name</EM>.
-Example:
-<BLOCKQUOTE>
-<PRE>
+</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.</strong>
+
+ <p><strong>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.</strong></p>
+ </blockquote>
+ <hr />
+
+ <h2><a id="addmoduleinfo"
+ name="addmoduleinfo">AddModuleInfo</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddModuleInfo
+ <em>module-name string</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_info<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
+ above
+
+ <p>This allows the content of <em>string</em> to be shown as
+ HTML interpreted, <strong>Additional Information</strong> for
+ the module <em>module-name</em>. Example:</p>
+
+ <blockquote>
+<pre>
AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_auth.html"&gt;http://www.apache.org/docs/mod/mod_auth.html&lt;/A&gt;'
-</PRE>
-</BLOCKQUOTE>
+</pre>
+ </blockquote>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_isapi.html b/docs/manual/mod/mod_isapi.html
index a44fb4cdcd..a8d55a5b66 100644
--- a/docs/manual/mod/mod_isapi.html
+++ b/docs/manual/mod/mod_isapi.html
@@ -1,376 +1,365 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_isapi</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Module mod_isapi</H1>
-
-<P>This module supports ISAPI Extensions within Apache for Windows.</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_isapi.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> isapi_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> WIN32 only
-</P>
-
-<H2>Summary</H2>
-
-<P>This module implements the Internet Server extension API. It allows
- Internet Server extensions (<EM>e.g.</EM> ISAPI .dll modules) to be
- served by Apache for Windows, subject to the noted restrictions.</P>
-
-<P>ISAPI extension modules (.dll files) are written by third parties. The
- Apache Group does not author these modules, so we provide no support for
- them. Please contact the ISAPI's author directly if you are experiencing
- problems running their ISAPI extention. <STRONG>Please <EM>do not</EM>
- post such problems to Apache's lists or bug reporting pages.</STRONG></P>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#isapifilecache">ISAPIFileCache</A>
-<LI><A HREF="#isapireadaheadbuffer">ISAPIReadAheadBuffer</A>
-<LI><A HREF="#isapilognotsupported">ISAPILogNotSupported</A>
-<LI><A HREF="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</A>
-<LI><A HREF="#isapiappendlogtoquery">ISAPIAppendLogToQuery</A>
-</UL>
-
-<H2>Usage</H2>
-
-<P>In the server configuration file, use the AddHandler directive to
- associate ISAPI files with the <CODE>isapi-isa</CODE> handler, and map
- it to the with their file extensions. To enable any .dll file to be
- processed as an ISAPI extention, edit the httpd.conf file and add the
- following line:</P>
-
-<PRE>
- AddHandler isapi-isa .dll
-</PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_isapi</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_isapi</h1>
+
+ <p>This module supports ISAPI Extensions within Apache for
+ Windows.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_isapi.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ isapi_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> WIN32 only</p>
+
+ <h2>Summary</h2>
+
+ <p>This module implements the Internet Server extension API. It
+ allows Internet Server extensions (<em>e.g.</em> ISAPI .dll
+ modules) to be served by Apache for Windows, subject to the
+ noted restrictions.</p>
+
+ <p>ISAPI extension modules (.dll files) are written by third
+ parties. The Apache Group does not author these modules, so we
+ provide no support for them. Please contact the ISAPI's author
+ directly if you are experiencing problems running their ISAPI
+ extention. <strong>Please <em>do not</em> post such problems to
+ Apache's lists or bug reporting pages.</strong></p>
+
+ <h2>Directives</h2>
-<P>There is no capability within the Apache server to leave a requested
- module loaded. However, you may preload and keep a specific module loaded
- by using the following syntax in your httpd.conf:
+ <ul>
+ <li><a href="#isapifilecache">ISAPIFileCache</a></li>
-<PRE>
+ <li><a
+ href="#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li>
+
+ <li><a
+ href="#isapilognotsupported">ISAPILogNotSupported</a></li>
+
+ <li><a
+ href="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li>
+
+ <li><a
+ href="#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li>
+ </ul>
+
+ <h2>Usage</h2>
+
+ <p>In the server configuration file, use the AddHandler
+ directive to associate ISAPI files with the
+ <code>isapi-isa</code> handler, and map it to the with their
+ file extensions. To enable any .dll file to be processed as an
+ ISAPI extention, edit the httpd.conf file and add the following
+ line:</p>
+<pre>
+ AddHandler isapi-isa .dll
+</pre>
+
+ <p>There is no capability within the Apache server to leave a
+ requested module loaded. However, you may preload and keep a
+ specific module loaded by using the following syntax in your
+ httpd.conf:</p>
+<pre>
ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll
-</PRE>
-
-<P>Whether or not you have preloaded an ISAPI extension, all ISAPI
- extensions are governed by the same permissions and restrictions
- as CGI scripts. That is, <CODE>Options ExecCGI</CODE> must be set for
- the directory that contains the ISAPI .dll file.</P>
-
-<P>Review the <A HREF="#notes">Additional Notes</A> and the
- <A HREF="#journal">Programmer's Journal</A> for additional details and
- clarification of the specific ISAPI support offered by mod_isapi.</P>
-
-<H2><A NAME="notes">Additional Notes</A></H2>
-
-<P>Apache's ISAPI implementation conforms to all of the ISAPI 2.0
- specification, except for some "Microsoft-specific" extensions dealing
- with asynchronous I/O. Apache's I/O model does not allow asynchronous
- reading and writing in a manner that the ISAPI could access. If an ISA
- tries to access unsupported features, including async I/O, a message is
- placed in the error log to help with debugging. Since these messages
- can become a flood, the directive <CODE>ISAPILogNotSupported Off</CODE>
- exists to quiet this noise.</P>
-
-<P>Some servers, like Microsoft IIS, load the ISAPI extension into the server
- and keep it loaded until memory usage is too high, or unless configuration
- options are specified. Apache currently loads and unloads the ISAPI
- extension each time it is requested, unless the ISAPICacheFile directive
- is specified. This is inefficient, but Apache's memory model makes this
- the most effective method. Many ISAPI modules are subtly incompatible
- with the Apache server, and unloading these modules helps to ensure the
- stability of the server.</P>
-
-<P>Also, remember that while Apache supports ISAPI Extensions, it
- <STRONG>does not support ISAPI Filters.</STRONG> Support for filters may
- be added at a later date, but no support is planned at this time.</P>
-
-<H2><A NAME="journal">Programmer's Journal</A></H2>
-
-<P>If you are programming Apache 2.0 mod_isapi modules, you must limit your
- calls to ServerSupportFunction to the following directives:</P>
-
-<DL>
- <DT>HSE_REQ_SEND_URL_REDIRECT_RESP
- <DD>Redirect the user to another location.<BR>
- This must be a fully qualified URL (e.g. http://server/location).
- <DT>HSE_REQ_SEND_URL
- <DD>Redirect the user to another location.<BR>
- This cannot be a fully qualified URL, you are not allowed
- to pass the protocol or a server name (e.g. simply /location).<BR>
- This redirection is handled by the server, not the browser.<BR>
- <STRONG>Warning:</STRONG> in their recent documentation, Microsoft
- appears to have abandoned the distinction between the two
- HSE_REQ_SEND_URL functions. Apache continues to treat them as two
- distinct functions with different requirements and behaviors.
- <DT>HSE_REQ_SEND_RESPONSE_HEADER
- <DD>Apache accepts a response body following the header if it follows
- the blank line (two consecutive newlines) in the headers string
- argument. This body cannot contain NULLs, since the headers
- argument is NULL terminated.
- <DT>HSE_REQ_DONE_WITH_SESSION
- <DD>Apache considers this a no-op, since the session will be finished
- when the ISAPI returns from processing.
- <DT>HSE_REQ_MAP_URL_TO_PATH
- <DD>Apache will translate a virtual name to a physical name.
- <DT>HSE_APPEND_LOG_PARAMETER
- <DD>This logged message may be captured in any of the following logs:
- <UL>
- <LI>in the \"%{isapi-parameter}n\" component in a CustomLog directive
- <LI>in the %q log component with the ISAPIAppendLogToQuery On directive
- <LI>in the error log with the ISAPIAppendLogToErrors On directive
- </UL>
- The first option, the %{isapi-parameter}n component, is always available
- and prefered.
- <DT>HSE_REQ_IS_KEEP_CONN
- <DD>Will return the negotiated Keep-Alive status.
- <DT>HSE_REQ_SEND_RESPONSE_HEADER_EX
- <DD>Will behave as documented, although the fKeepConn flag is ignored.
- <DT>HSE_REQ_IS_CONNECTED
- <DD>Will report false if the request has been aborted.
-</DL>
-
-<P>Apache returns FALSE to any unsupported call to ServerSupportFunction, and
- sets the GetLastError value to ERROR_INVALID_PARAMETER.</P>
-
-<P>ReadClient retrieves the request body exceeding the initial buffer
- (defined by ISAPIReadAheadBuffer). Based on the ISAPIReadAheadBuffer
- setting (number of bytes to buffer prior to calling the ISAPI handler)
- shorter requests are sent complete to the extension when it is invoked.
- If the request is longer, the ISAPI extension must use ReadClient to
- retrieve the remaining request body.</P>
-
-<P>WriteClient is supported, but only with the HSE_IO_SYNC flag or
- no option flag (value of 0). Any other WriteClient request will
- be rejected with a return value of FALSE, and a GetLastError
- value of ERROR_INVALID_PARAMETER.</P>
-
-<P>GetServerVariable is supported, although extended server variables do not
- exist (as defined by other servers.) All the usual Apache CGI environment
- variables are available from GetServerVariable, as well as the ALL_HTTP
- and ALL_RAW values.</P>
-
-<P>Apache 2.0 mod_isapi supports additional features introduced in later
- versions of the ISAPI specification, as well as limited emulation of
- async I/O and the TransmitFile semantics. Apache also supports preloading
- ISAPI .dlls for performance, neither of which were not available under
- Apache 1.3 mod_isapi.</P>
-
-<HR>
-
-<H2><A NAME="isapifilecache">ISAPIFileCache directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ISAPIFileCache} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ISAPIFileCache <EM>file</em> [<em>file</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_isapi<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 2.0 and later, Win32 only<P>
-
- Specifies a space-separated list of file names to be loaded
- when the Apache server is launched, and remain loaded until
- the server is shut down. This directive may be repeated
- for every ISAPI .dll file desired. The full path name of
- each file should be specified.
- <P>
-<HR>
-
-<H2><A NAME="isapireadaheadbuffer">ISAPIReadAheadBuffer directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ISAPIReadAheadBuffer} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ISAPIReadAheadBuffer <EM>size</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> 49152<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_isapi<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.13 and later, Win32 only<P>
-
-
- Defines the maximum size of the Read Ahead Buffer sent to
- ISAPI extensions when they are initially invoked. All
- remaining data must be retrieved using the ReadClient
- callback; some ISAPI extensions may not support the
- ReadClient function. Refer questions to the ISAPI extension's
- author.
- <P>
-<HR>
-
-<H2><A NAME="isapilognotsupported">ISAPILogNotSupported directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ISAPILogNotSupported} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ISAPILogNotSupported on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> on<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_isapi<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.13 and later, Win32 only<P>
-
- Logs all requests for unsupported features from ISAPI extensions
- in the server error log. While this should be turned off once
- all desired ISAPI modules are functioning, it defaults to on
- to help administrators track down problems.
- <P>
-<HR>
-
-<H2><A NAME="isapiappendlogtoerrors">ISAPIAppendLogToErrors directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ISAPIAppendLogToErrors} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ISAPIAppendLogToErrors on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> off<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_isapi<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.13 and later, Win32 only<P>
-
- Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extensions
- to the server error log.
- <P>
-<HR>
-
-<H2><A NAME="isapiappendlogtoquery">ISAPIAppendLogToQuery directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ISAPIAppendLogToQuery} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ISAPIAppendLogToQuery on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> off<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_isapi<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.13 and later, Win32 only<P>
-
- Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extensions
- to the query field (appended to the CustomLog %q component).
- <P>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+
+ <p>Whether or not you have preloaded an ISAPI extension, all
+ ISAPI extensions are governed by the same permissions and
+ restrictions as CGI scripts. That is, <code>Options
+ ExecCGI</code> must be set for the directory that contains the
+ ISAPI .dll file.</p>
+
+ <p>Review the <a href="#notes">Additional Notes</a> and the <a
+ href="#journal">Programmer's Journal</a> for additional details
+ and clarification of the specific ISAPI support offered by
+ mod_isapi.</p>
+
+ <h2><a id="notes" name="notes">Additional Notes</a></h2>
+
+ <p>Apache's ISAPI implementation conforms to all of the ISAPI
+ 2.0 specification, except for some "Microsoft-specific"
+ extensions dealing with asynchronous I/O. Apache's I/O model
+ does not allow asynchronous reading and writing in a manner
+ that the ISAPI could access. If an ISA tries to access
+ unsupported features, including async I/O, a message is placed
+ in the error log to help with debugging. Since these messages
+ can become a flood, the directive <code>ISAPILogNotSupported
+ Off</code> exists to quiet this noise.</p>
+
+ <p>Some servers, like Microsoft IIS, load the ISAPI extension
+ into the server and keep it loaded until memory usage is too
+ high, or unless configuration options are specified. Apache
+ currently loads and unloads the ISAPI extension each time it is
+ requested, unless the ISAPICacheFile directive is specified.
+ This is inefficient, but Apache's memory model makes this the
+ most effective method. Many ISAPI modules are subtly
+ incompatible with the Apache server, and unloading these
+ modules helps to ensure the stability of the server.</p>
+
+ <p>Also, remember that while Apache supports ISAPI Extensions,
+ it <strong>does not support ISAPI Filters.</strong> Support for
+ filters may be added at a later date, but no support is planned
+ at this time.</p>
+
+ <h2><a id="journal" name="journal">Programmer's
+ Journal</a></h2>
+
+ <p>If you are programming Apache 2.0 mod_isapi modules, you
+ must limit your calls to ServerSupportFunction to the following
+ directives:</p>
+
+ <dl>
+ <dt>HSE_REQ_SEND_URL_REDIRECT_RESP</dt>
+
+ <dd>Redirect the user to another location.<br />
+ This must be a fully qualified URL (e.g.
+ http://server/location).</dd>
+
+ <dt>HSE_REQ_SEND_URL</dt>
+
+ <dd>Redirect the user to another location.<br />
+ This cannot be a fully qualified URL, you are not allowed to
+ pass the protocol or a server name (e.g. simply
+ /location).<br />
+ This redirection is handled by the server, not the
+ browser.<br />
+ <strong>Warning:</strong> in their recent documentation,
+ Microsoft appears to have abandoned the distinction between
+ the two HSE_REQ_SEND_URL functions. Apache continues to treat
+ them as two distinct functions with different requirements
+ and behaviors.</dd>
+
+ <dt>HSE_REQ_SEND_RESPONSE_HEADER</dt>
+
+ <dd>Apache accepts a response body following the header if it
+ follows the blank line (two consecutive newlines) in the
+ headers string argument. This body cannot contain NULLs,
+ since the headers argument is NULL terminated.</dd>
+
+ <dt>HSE_REQ_DONE_WITH_SESSION</dt>
+
+ <dd>Apache considers this a no-op, since the session will be
+ finished when the ISAPI returns from processing.</dd>
+
+ <dt>HSE_REQ_MAP_URL_TO_PATH</dt>
+
+ <dd>Apache will translate a virtual name to a physical
+ name.</dd>
+
+ <dt>HSE_APPEND_LOG_PARAMETER</dt>
+
+ <dd>
+ This logged message may be captured in any of the following
+ logs:
+
+ <ul>
+ <li>in the \"%{isapi-parameter}n\" component in a
+ CustomLog directive</li>
+
+ <li>in the %q log component with the
+ ISAPIAppendLogToQuery On directive</li>
+
+ <li>in the error log with the ISAPIAppendLogToErrors On
+ directive</li>
+ </ul>
+ The first option, the %{isapi-parameter}n component, is
+ always available and prefered.
+ </dd>
+
+ <dt>HSE_REQ_IS_KEEP_CONN</dt>
+
+ <dd>Will return the negotiated Keep-Alive status.</dd>
+
+ <dt>HSE_REQ_SEND_RESPONSE_HEADER_EX</dt>
+
+ <dd>Will behave as documented, although the fKeepConn flag is
+ ignored.</dd>
+
+ <dt>HSE_REQ_IS_CONNECTED</dt>
+
+ <dd>Will report false if the request has been aborted.</dd>
+ </dl>
+
+ <p>Apache returns FALSE to any unsupported call to
+ ServerSupportFunction, and sets the GetLastError value to
+ ERROR_INVALID_PARAMETER.</p>
+
+ <p>ReadClient retrieves the request body exceeding the initial
+ buffer (defined by ISAPIReadAheadBuffer). Based on the
+ ISAPIReadAheadBuffer setting (number of bytes to buffer prior
+ to calling the ISAPI handler) shorter requests are sent
+ complete to the extension when it is invoked. If the request is
+ longer, the ISAPI extension must use ReadClient to retrieve the
+ remaining request body.</p>
+
+ <p>WriteClient is supported, but only with the HSE_IO_SYNC flag
+ or no option flag (value of 0). Any other WriteClient request
+ will be rejected with a return value of FALSE, and a
+ GetLastError value of ERROR_INVALID_PARAMETER.</p>
+
+ <p>GetServerVariable is supported, although extended server
+ variables do not exist (as defined by other servers.) All the
+ usual Apache CGI environment variables are available from
+ GetServerVariable, as well as the ALL_HTTP and ALL_RAW
+ values.</p>
+
+ <p>Apache 2.0 mod_isapi supports additional features introduced
+ in later versions of the ISAPI specification, as well as
+ limited emulation of async I/O and the TransmitFile semantics.
+ Apache also supports preloading ISAPI .dlls for performance,
+ neither of which were not available under Apache 1.3
+ mod_isapi.</p>
+ <hr />
+
+ <h2><a id="isapifilecache" name="isapifilecache">ISAPIFileCache
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ISAPIFileCache} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ISAPIFileCache
+ <em>file</em> [<em>file</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> None<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_isapi<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 2.0 and
+ later, Win32 only
+
+ <p>Specifies a space-separated list of file names to be loaded
+ when the Apache server is launched, and remain loaded until the
+ server is shut down. This directive may be repeated for every
+ ISAPI .dll file desired. The full path name of each file should
+ be specified.</p>
+ <hr />
+
+ <h2><a id="isapireadaheadbuffer"
+ name="isapireadaheadbuffer">ISAPIReadAheadBuffer
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ISAPIReadAheadBuffer} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ISAPIReadAheadBuffer
+ <em>size</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 49152<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> None<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_isapi<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13
+ and later, Win32 only
+
+ <p>Defines the maximum size of the Read Ahead Buffer sent to
+ ISAPI extensions when they are initially invoked. All remaining
+ data must be retrieved using the ReadClient callback; some
+ ISAPI extensions may not support the ReadClient function. Refer
+ questions to the ISAPI extension's author.</p>
+ <hr />
+
+ <h2><a id="isapilognotsupported"
+ name="isapilognotsupported">ISAPILogNotSupported
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ISAPILogNotSupported} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ISAPILogNotSupported
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> on<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> None<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_isapi<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13
+ and later, Win32 only
+
+ <p>Logs all requests for unsupported features from ISAPI
+ extensions in the server error log. While this should be turned
+ off once all desired ISAPI modules are functioning, it defaults
+ to on to help administrators track down problems.</p>
+ <hr />
+
+ <h2><a id="isapiappendlogtoerrors"
+ name="isapiappendlogtoerrors">ISAPIAppendLogToErrors
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ISAPIAppendLogToErrors} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ISAPIAppendLogToErrors
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> off<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> None<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_isapi<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13
+ and later, Win32 only
+
+ <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI
+ extensions to the server error log.</p>
+ <hr />
+
+ <h2><a id="isapiappendlogtoquery"
+ name="isapiappendlogtoquery">ISAPIAppendLogToQuery
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ISAPIAppendLogToQuery} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ISAPIAppendLogToQuery
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> off<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> None<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_isapi<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13
+ and later, Win32 only
+
+ <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI
+ extensions to the query field (appended to the CustomLog %q
+ component).</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_log_config.html b/docs/manual/mod/mod_log_config.html
index 78c2c53b29..43df3a461e 100644
--- a/docs/manual/mod/mod_log_config.html
+++ b/docs/manual/mod/mod_log_config.html
@@ -1,105 +1,100 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_log_config</H1>
-<P>
-This module provides for logging of the requests made to
-the server, using the Common Log Format or a user-specified format.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_log_config.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> config_log_module
-</P>
-
-
-<H2>Summary</H2>
-
-<p>This module provides for flexible logging of client requests. Logs
-are written in a customizable format, and may be written directly to a
-file, or to an external program. Conditional logging is provided so
-that individual requests may be included or excluded from the logs
-based on characteristics of the request.</p>
-
-<P>
-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 step.
-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>
-
-<p>See also: <a href="../logs.html">Apache Log Files</a>.</p>
-
-<H2>Directives</H2>
-
-<UL>
-<LI><A HREF="#cookielog">CookieLog</A></LI>
-<LI><A HREF="#customlog">CustomLog</A></LI>
-<LI><A HREF="#logformat">LogFormat</A></LI>
-<LI><A HREF="#transferlog">TransferLog</A></LI>
-</UL>
-
-<H2><A NAME="formats">Custom Log Formats</A></H2>
-
-<p>The format argument to the <CODE>LogFormat</CODE> and
-<CODE>CustomLog</CODE> directives 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 the c-type control characters "\n" and
-"\t" to represent new-lines and tabs. Literal quotes and back-slashes
-should be escaped with back-slashes.</p>
-
-<p>The characteristics of the request itself are logged by placing
-"%" directives in the format string, which are replaced in the log file
-by the values as follows:</p>
-
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_log_config</h1>
+
+ <p>This module provides for logging of the requests made to the
+ server, using the Common Log Format or a user-specified
+ format.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_log_config.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ config_log_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides for flexible logging of client
+ requests. Logs are written in a customizable format, and may be
+ written directly to a file, or to an external program.
+ Conditional logging is provided so that individual requests may
+ be included or excluded from the logs based on characteristics
+ of the request.</p>
+
+ <p>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
+ step. 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>
+
+ <p>See also: <a href="../logs.html">Apache Log Files</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#cookielog">CookieLog</a></li>
+
+ <li><a href="#customlog">CustomLog</a></li>
+
+ <li><a href="#logformat">LogFormat</a></li>
+
+ <li><a href="#transferlog">TransferLog</a></li>
+ </ul>
+
+ <h2><a id="formats" name="formats">Custom Log Formats</a></h2>
+
+ <p>The format argument to the <code>LogFormat</code> and
+ <code>CustomLog</code> directives 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 the c-type control
+ characters "\n" and "\t" to represent new-lines and tabs.
+ Literal quotes and back-slashes should be escaped with
+ back-slashes.</p>
+
+ <p>The characteristics of the request itself are logged by
+ placing "%" directives in the format string, which are replaced
+ in the log file by the values as follows:</p>
+<pre>
%...a: Remote IP-address
%...A: Local IP-address
%...B: Bytes sent, excluding HTTP headers.
%...b: Bytes sent, excluding HTTP headers. In CLF format
- i.e. a '-' rather than a 0 when no bytes are sent.
-%...{Foobar}C: The contents of cookie "Foobar" in the request sent to the
+ i.e. a '-' rather than a 0 when no bytes are sent.
+%...{Foobar}C: The contents of cookie "Foobar" in the request sent to the
server.
%...D: The time taken to serve the request, in microseconds.
%...{FOOBAR}e: The contents of the environment variable FOOBAR
%...f: Filename
%...h: Remote host
-%...H The request protocol
+%...H The request protocol
%...{Foobar}i: The contents of Foobar: header line(s) in the request
sent to the server.
%...l: Remote logname (from identd, if supplied)
-%...m The request method
+%...m The request method
%...{Foobar}n: The contents of note "Foobar" from another module.
%...{Foobar}o: The contents of Foobar: header line(s) in the reply.
%...p: The canonical Port of the server serving the request
%...P: The process ID of the child that serviced the request.
-%...q The query string (prepended with a ? if a query string exists,
- otherwise an empty string)
+%...q The query string (prepended with a ? if a query string exists,
+ otherwise an empty string)
%...r: First line of request
%...s: Status. For requests that got internally redirected, this is
the status of the *original* request --- %...&gt;s for the last.
@@ -117,272 +112,254 @@ by the values as follows:</p>
'-' = connection will be closed after the response is sent.
(This directive was %...c in late versions of Apache 1.3, but
this conflicted with the historical ssl %...{var}c syntax.)
-</PRE>
-
-<p>The "..." can be nothing at all (<EM>e.g.</EM>, <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). 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 <STRONG>not</STRONG> return some sort of normal
-status.</p>
-
-<p>Note that there is no escaping performed on the strings from
-%...r, %...i and %...o. This is mainly to comply with the requirements
-of the Common Log Format. This implies that clients can insert
-control characters into the log, so care should be taken when dealing
-with raw log files.</p>
-
-<p>Some commonly used log format strings are:</p>
-
-<dl>
-<dt>Common Log Format (CLF)</dt>
-<dd><CODE>"%h %l %u %t \"%r\" %&gt;s %b"</CODE></dd>
-
-<dt>Common Log Format with Virtual Host</dt>
-<dd><code>"%v %h %l %u %t \"%r\" %&gt;s %b"</CODE></dd>
-
-<dt>NCSA extended/combined log format</dt>
-<dd> <CODE>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""</CODE></dd>
-
-<dt>Referer log format</dt>
-<dd><code>"%{Referer}i -&gt; %U"</code></dd>
-
-<dt>Agent (Browser) log format</dt>
-<dd><code>"%{User-agent}i"</code></dd>
-</dl>
-
-<P>Note that the canonical <A
-HREF="core.html#servername">ServerName</A> and <A
-HREF="core.html#port">Port</A> of the server serving the request are
-used for <CODE>%v</CODE> and <CODE>%p</CODE> respectively. This
-happens regardless of the <A
-HREF="core.html#usecanonicalname">UseCanonicalName</A> setting because
-otherwise log analysis programs would have to duplicate the entire
-vhost matching algorithm in order to decide what host really served
-the request.</p>
-
-<H2>Security Considerations</H2>
-
-<p>See the <A HREF="../misc/security_tips.html#serverroot">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>
-
-
-<H2><A NAME="cookielog">CookieLog</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt CookieLog} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CookieLog <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_cookies<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Only available in Apache 1.2 and above</p>
-
-<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 mod_cookies, and is deprecated.</p>
-
-<HR>
-<H2><A NAME="customlog">CustomLog</A>
-<a NAME="customlogconditional">directive</a></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CustomLog <EM>file</em>|<em>pipe</EM>
- <EM>format</em>|<em>nickname</EM> [env=[!]<EM>environment-variable</EM>]<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Nickname only available in Apache 1.3
- or later. Conditional logging available in 1.3.5 or later.
-<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_log_config</p>
-
-<p>The <code>CustomLog</code> directive is used to log requests
-to the server. A log format is specified, and the logging can
-optionally be made conditional on request characteristics
-using environment variables.</p>
-
-<P>The first argument, which specifies the location to which the
-logs will be written, can take on one of the following two
-types of values:</p>
-
-<dl>
-<dt><em>file</em>
-<dd>A filename, relative to the
-<a href="core.html#serverroot">ServerRoot</a>.</dd>
-
-<dt><em>pipe</em>
-<dd>The pipe character "<code>|</code>", followed by the path to a
-program to receive the log information on its standard input.
-<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.</dd>
-</dl>
-
-<P>The second argument specifies what will be written to the
-log file. It can specify either a <em>nickname</em>
-defined by a previous <a href="#logformat">LogFormat</a>
-directive, or it can be an explicit <em>format</em> string
-as described in the <a href="#formats">log formats</a> section.</p>
-
-<p>For example, the following two sets of directives have exactly
-the same effect:</p>
+</pre>
+ <p>The "..." can be nothing at all (<em>e.g.</em>, <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). 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 <strong>not</strong> return some sort of normal status.</p>
+
+ <p>Note that there is no escaping performed on the strings from
+ %...r, %...i and %...o. This is mainly to comply with the
+ requirements of the Common Log Format. This implies that
+ clients can insert control characters into the log, so care
+ should be taken when dealing with raw log files.</p>
+
+ <p>Some commonly used log format strings are:</p>
+
+ <dl>
+ <dt>Common Log Format (CLF)</dt>
+
+ <dd><code>"%h %l %u %t \"%r\" %&gt;s %b"</code></dd>
+
+ <dt>Common Log Format with Virtual Host</dt>
+
+ <dd><code>"%v %h %l %u %t \"%r\" %&gt;s %b"</code></dd>
+
+ <dt>NCSA extended/combined log format</dt>
+
+ <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
+ \"%{User-agent}i\""</code></dd>
+
+ <dt>Referer log format</dt>
+
+ <dd><code>"%{Referer}i -&gt; %U"</code></dd>
+
+ <dt>Agent (Browser) log format</dt>
+
+ <dd><code>"%{User-agent}i"</code></dd>
+ </dl>
+
+ <p>Note that the canonical <a
+ href="core.html#servername">ServerName</a> and <a
+ href="core.html#port">Port</a> of the server serving the
+ request are used for <code>%v</code> and <code>%p</code>
+ respectively. This happens regardless of the <a
+ href="core.html#usecanonicalname">UseCanonicalName</a> setting
+ because otherwise log analysis programs would have to duplicate
+ the entire vhost matching algorithm in order to decide what
+ host really served the request.</p>
+
+ <h2>Security Considerations</h2>
+
+ <p>See the <a
+ href="../misc/security_tips.html#serverroot">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 />
+
+ <h2><a id="cookielog" name="cookielog">CookieLog</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt CookieLog} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CookieLog
+ <em>filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_cookies<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Only available
+ in Apache 1.2 and above</p>
+
+ <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 mod_cookies, and is
+ deprecated.</p>
+ <hr />
+
+ <h2><a id="customlog" name="customlog">CustomLog</a> <a
+ id="customlogconditional"
+ name="customlogconditional">directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CustomLog
+ <em>file</em>|<em>pipe</em> <em>format</em>|<em>nickname</em>
+ [env=[!]<em>environment-variable</em>]<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Nickname only
+ available in Apache 1.3 or later. Conditional logging available
+ in 1.3.5 or later.<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_log_config</p>
+
+ <p>The <code>CustomLog</code> directive is used to log requests
+ to the server. A log format is specified, and the logging can
+ optionally be made conditional on request characteristics using
+ environment variables.</p>
+
+ <p>The first argument, which specifies the location to which
+ the logs will be written, can take on one of the following two
+ types of values:</p>
+
+ <dl>
+ <dt><em>file</em></dt>
+
+ <dd>A filename, relative to the <a
+ href="core.html#serverroot">ServerRoot</a>.</dd>
+
+ <dt><em>pipe</em></dt>
+
+ <dd>The pipe character "<code>|</code>", followed by the path
+ to a program to receive the log information on its standard
+ input. <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.</dd>
+ </dl>
+
+ <p>The second argument specifies what will be written to the
+ log file. It can specify either a <em>nickname</em> defined by
+ a previous <a href="#logformat">LogFormat</a> directive, or it
+ can be an explicit <em>format</em> string as described in the
+ <a href="#formats">log formats</a> section.</p>
+
+ <p>For example, the following two sets of directives have
+ exactly the same effect:</p>
<pre>
# CustomLog with format nickname
- LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b&quot; common
+ LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
CustomLog logs/access_log common
# CustomLog with explicit format string
- CustomLog logs/access_log &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b&quot;
+ CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
</pre>
-<p>The third argument is optional and allows the decision on whether
-or not to log a particular request to be based on the presence or
-absence of a particular variable in the server environment. If the
-specified <a href="../env.html">environment variable</a> is set for
-the request (or is not set, in the case of a
-'<CODE>env=!<EM>name</EM></CODE>' clause), then the request will be
-logged.</P>
-
-<P>Environment variables can be set on a <EM>per</EM>-request basis
-using the <A HREF="mod_setenvif.html">mod_setenvif</A> and/or <A
-HREF="mod_rewrite.html">mod_rewrite</A> modules. For example, if you
-don't want to record requests for all GIF images on your server in a
-separate logfile but not your main log, you can use:
-</P>
-<PRE>
+ <p>The third argument is optional and allows the decision on
+ whether or not to log a particular request to be based on the
+ presence or absence of a particular variable in the server
+ environment. If the specified <a href="../env.html">environment
+ variable</a> is set for the request (or is not set, in the case
+ of a '<code>env=!<em>name</em></code>' clause), then the
+ request will be logged.</p>
+
+ <p>Environment variables can be set on a <em>per</em>-request
+ basis using the <a href="mod_setenvif.html">mod_setenvif</a>
+ and/or <a href="mod_rewrite.html">mod_rewrite</a> modules. For
+ example, if you don't want to record requests for all GIF
+ images on your server in a separate logfile but not your main
+ log, you can use:</p>
+<pre>
SetEnvIf Request_URI \.gif$ gif-image
CustomLog gif-requests.log common env=gif-image
CustomLog nongif-requests.log common env=!gif-image
-</PRE>
-
-<HR>
-<H2><A NAME="logformat">LogFormat</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt LogFormat} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> LogFormat <EM>format</em>|<em>nickname</EM>
- [<EM>nickname</EM>]
-<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>LogFormat &quot;%h %l %u %t \&quot;%r\&quot;
-%&gt;s %b&quot;</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Nickname only available in Apache 1.3
- or later
-<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_log_config</p>
-
-<p>This directive specifies the format of the access log file.</p>
-
-<p>The <code>LogFormat</code> directive can take one of two forms. In
-the first form, where only one argument is specified, this directive
-sets the log format which will be used by logs specified in subsequent
-<a href="#transferlog">TransferLog</a> directives. The single
-argument can specify an explicit <em>format</em> as discussed in <a
-href="#formats">custom log formats</a> section above. Alternatively,
-it can use a <em>nickname</em> to refer to a log format defined
-in a previous <code>LogFormat</code> directive as described below.</p>
-
-<p>The second form of the <code>LogFormat</code> directive associates
-an explicit <em>format</em> with a <em>nickname</em>. This
-<em>nickname</em> can then be used in subsequent
-<code>LogFormat</code> or <a href="#customlog">CustomLog</a>
-directives rather than repeating the entire format string. A
-<SAMP>LogFormat</SAMP> directive which defines a nickname <STRONG>does
-nothing else</STRONG> -- that is, it <EM>only</EM> defines the
-nickname, it doesn't actually apply the format and make it the
-default. Therefore, it will not affect subsequent <a
-href="#transferlog">TransferLog</a> directives.
-</P>
-
-<HR>
-
-<H2><A NAME="transferlog">TransferLog</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> TransferLog <EM>file</em>|<em>pipe</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> none<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_log_config</p>
-
-<p>This directive has exactly the same arguments and effect as the <a
-href="#customlog">CustomLog</a> directive, with the exception that it
-does not allow the log format to be specified explicitly or for
-conditional logging of requests. Instead, the log format is
-determined by the most recently specified specified <a
-href="#logformat">LogFormat</a> directive (which does not define a
-nickname). Common Log Format is used if no other format has been
-specified.</p>
-
-<p>Example:</p>
-
+</pre>
+ <hr />
+
+ <h2><a id="logformat" name="logformat">LogFormat</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt LogFormat} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LogFormat
+ <em>format</em>|<em>nickname</em> [<em>nickname</em>]<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>LogFormat "%h %l
+ %u %t \"%r\" %&gt;s %b"</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Nickname only
+ available in Apache 1.3 or later<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_log_config</p>
+
+ <p>This directive specifies the format of the access log
+ file.</p>
+
+ <p>The <code>LogFormat</code> directive can take one of two
+ forms. In the first form, where only one argument is specified,
+ this directive sets the log format which will be used by logs
+ specified in subsequent <a href="#transferlog">TransferLog</a>
+ directives. The single argument can specify an explicit
+ <em>format</em> as discussed in <a href="#formats">custom log
+ formats</a> section above. Alternatively, it can use a
+ <em>nickname</em> to refer to a log format defined in a
+ previous <code>LogFormat</code> directive as described
+ below.</p>
+
+ <p>The second form of the <code>LogFormat</code> directive
+ associates an explicit <em>format</em> with a
+ <em>nickname</em>. This <em>nickname</em> can then be used in
+ subsequent <code>LogFormat</code> or <a
+ href="#customlog">CustomLog</a> directives rather than
+ repeating the entire format string. A <samp>LogFormat</samp>
+ directive which defines a nickname <strong>does nothing
+ else</strong> -- that is, it <em>only</em> defines the
+ nickname, it doesn't actually apply the format and make it the
+ default. Therefore, it will not affect subsequent <a
+ href="#transferlog">TransferLog</a> directives.</p>
+ <hr />
+
+ <h2><a id="transferlog" name="transferlog">TransferLog</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> TransferLog
+ <em>file</em>|<em>pipe</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_log_config</p>
+
+ <p>This directive has exactly the same arguments and effect as
+ the <a href="#customlog">CustomLog</a> directive, with the
+ exception that it does not allow the log format to be specified
+ explicitly or for conditional logging of requests. Instead, the
+ log format is determined by the most recently specified
+ specified <a href="#logformat">LogFormat</a> directive (which
+ does not define a nickname). Common Log Format is used if no
+ other format has been specified.</p>
+
+ <p>Example:</p>
<pre>
LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog logs/access_log
</pre>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_mime_magic.html b/docs/manual/mod/mod_mime_magic.html
index 3e0327abf2..893b2205b4 100644
--- a/docs/manual/mod/mod_mime_magic.html
+++ b/docs/manual/mod/mod_mime_magic.html
@@ -1,121 +1,182 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_mime_magic</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]">
- </DIV>
-
- <H1 align="CENTER">Module mod_mime_magic</H1>
-
- <p>This module provides for determining the MIME type of a file by
- looking at a few bytes of its contents.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_mime_magic.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mime_magic_module
-</P>
-
-
-
- <H2>Summary</H2>
-
- <p>This module determines the MIME type of files in the same way the
- Unix file(1) command works: it looks at the first few bytes of
- the file. It is intended as a "second line of defense" for cases
- that <a href="mod_mime.html">mod_mime</a> can't resolve. To assure
- that mod_mime gets first try at determining a file's MIME type,
- be sure to list mod_mime_magic <STRONG>before</STRONG> mod_mime
- in the configuration.
-
- <p>This module is derived from a free version of the
- <CODE>file(1)</CODE> command for Unix, which uses "magic numbers"
- and other hints from a file's contents to figure out what the
- contents are. This module is active only if the magic file is
- specified by the <A
- HREF="#mimemagicfile"><CODE>MimeMagicFile</CODE></A> directive.
-
-
- <H2>Directives</H2>
- <P>
- <UL>
- <LI><A HREF="#mimemagicfile">MimeMagicFile</A>
- </LI>
- </UL>
- </P>
-
- <h2>Format of the Magic File</h2>
-
-<P>
- The contents of the file are plain ASCII text in 4-5 columns.
- Blank lines are allowed but ignored.
- Commented lines use a hash mark "#".
- The remaining lines are parsed for the following columns:
- <table border=1>
- <tr valign=top>
- <TH>Column</TH>
- <TH>Description</TH>
- </TR>
- <tr valign=top>
- <TD>1</TD>
- <TD>byte number to begin checking from
- <BR>
- "&gt;" indicates a dependency upon the previous non-"&gt;" line</TD>
- </TR><tr valign=top>
- <TD>2</TD>
- <TD>type of data to match
- <table border=1>
- <TR><TD>byte</TD><TD>single character</TD></TR>
- <TR><TD>short</TD><TD>machine-order 16-bit integer</TD></TR>
- <TR><TD>long</TD><TD>machine-order 32-bit integer</TD></TR>
- <TR><TD>string</TD><TD>arbitrary-length string</TD></TR>
- <TR><TD>date</TD><TD>long integer date
- (seconds since Unix epoch/1970)</TD></TR>
- <TR><TD>beshort</TD><TD>big-endian 16-bit integer</TD></TR>
- <TR><TD>belong</TD><TD>big-endian 32-bit integer</TD></TR>
- <TR><TD>bedate</TD><TD>big-endian 32-bit integer date</TD></TR>
- <TR><TD>leshort</TD><TD>little-endian 16-bit integer</TD></TR>
- <TR><TD>lelong</TD><TD>little-endian 32-bit integer</TD></TR>
- <TR><TD>ledate</TD><TD>little-endian 32-bit integer date</TD></TR>
- </TABLE>
- </TD>
- </TR><tr valign=top>
- <TD>3</TD>
- <TD>contents of data to match</TD>
- </TR><tr valign=top>
- <TD>4</TD>
- <TD>MIME type if matched</TD>
- </TR><tr valign=top>
- <TD>5</TD>
- <TD>MIME encoding if matched (optional)</TD>
- </TR>
- </TABLE>
-
- <P>
- For example, the following magic file lines
- would recognize some audio formats.
-
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_mime_magic</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]" />
+ </div>
+
+ <h1 align="CENTER">Module mod_mime_magic</h1>
+
+ <p>This module provides for determining the MIME type of a file
+ by looking at a few bytes of its contents.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_mime_magic.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mime_magic_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module determines the MIME type of files in the same
+ way the Unix file(1) command works: it looks at the first few
+ bytes of the file. It is intended as a "second line of defense"
+ for cases that <a href="mod_mime.html">mod_mime</a> can't
+ resolve. To assure that mod_mime gets first try at determining
+ a file's MIME type, be sure to list mod_mime_magic
+ <strong>before</strong> mod_mime in the configuration.</p>
+
+ <p>This module is derived from a free version of the
+ <code>file(1)</code> command for Unix, which uses "magic
+ numbers" and other hints from a file's contents to figure out
+ what the contents are. This module is active only if the magic
+ file is specified by the <a
+ href="#mimemagicfile"><code>MimeMagicFile</code></a>
+ directive.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#mimemagicfile">MimeMagicFile</a></li>
+ </ul>
+ <br />
+ <br />
+
+
+ <h2>Format of the Magic File</h2>
+
+ <p>The contents of the file are plain ASCII text in 4-5
+ columns. Blank lines are allowed but ignored. Commented lines
+ use a hash mark "#". The remaining lines are parsed for the
+ following columns:</p>
+
+ <table border="1">
+ <tr valign="top">
+ <th>Column</th>
+
+ <th>Description</th>
+ </tr>
+
+ <tr valign="top">
+ <td>1</td>
+
+ <td>byte number to begin checking from<br />
+ "&gt;" indicates a dependency upon the previous non-"&gt;"
+ line</td>
+ </tr>
+
+ <tr valign="top">
+ <td>2</td>
+
+ <td>
+ type of data to match
+
+ <table border="1">
+ <tr>
+ <td>byte</td>
+
+ <td>single character</td>
+ </tr>
+
+ <tr>
+ <td>short</td>
+
+ <td>machine-order 16-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>long</td>
+
+ <td>machine-order 32-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>string</td>
+
+ <td>arbitrary-length string</td>
+ </tr>
+
+ <tr>
+ <td>date</td>
+
+ <td>long integer date (seconds since Unix
+ epoch/1970)</td>
+ </tr>
+
+ <tr>
+ <td>beshort</td>
+
+ <td>big-endian 16-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>belong</td>
+
+ <td>big-endian 32-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>bedate</td>
+
+ <td>big-endian 32-bit integer date</td>
+ </tr>
+
+ <tr>
+ <td>leshort</td>
+
+ <td>little-endian 16-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>lelong</td>
+
+ <td>little-endian 32-bit integer</td>
+ </tr>
+
+ <tr>
+ <td>ledate</td>
+
+ <td>little-endian 32-bit integer date</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr valign="top">
+ <td>3</td>
+
+ <td>contents of data to match</td>
+ </tr>
+
+ <tr valign="top">
+ <td>4</td>
+
+ <td>MIME type if matched</td>
+ </tr>
+
+ <tr valign="top">
+ <td>5</td>
+
+ <td>MIME encoding if matched (optional)</td>
+ </tr>
+ </table>
+
+ <p>For example, the following magic file lines would recognize
+ some audio formats.</p>
+<pre>
# Sun/NeXT audio data
0 string .snd
&gt;12 belong 1 audio/basic
@@ -126,13 +187,11 @@ REL="Help"
&gt;12 belong 6 audio/basic
&gt;12 belong 7 audio/basic
&gt;12 belong 23 audio/x-adpcm
-</PRE>
-
- Or these would recognize the difference between "*.doc" files containing
- Microsoft Word or FrameMaker documents. (These are incompatible file
- formats which use the same file suffix.)
-
-<PRE>
+</pre>
+ Or these would recognize the difference between "*.doc" files
+ containing Microsoft Word or FrameMaker documents. (These are
+ incompatible file formats which use the same file suffix.)
+<pre>
# Frame
0 string \&lt;MakerFile application/x-frame
0 string \&lt;MIFFile application/x-frame
@@ -146,47 +205,43 @@ REL="Help"
0 string \376\067\0\043 application/msword
0 string \320\317\021\340\241\261 application/msword
0 string \333\245-\0\0\0 application/msword
-</PRE>
-
- An optional MIME encoding can be included as a fifth column.
- For example, this can recognize gzipped files and set the encoding
- for them.
-
-<PRE>
+</pre>
+ An optional MIME encoding can be included as a fifth column.
+ For example, this can recognize gzipped files and set the
+ encoding for them.
+<pre>
# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
0 string \037\213 application/octet-stream x-gzip
-</PRE>
-
- <H2>Performance Issues</H2>
-
- This module is not for every system. If your system is barely keeping
- up with its load or if you're performing a web server benchmark,
- you may not want to enable this because the processing is not free.
- <P>
- However, an effort was made to improve the performance of the original
- file(1) code to make it fit in a busy web server.
- It was designed for a server where there are thousands of users who
- publish their own documents.
- This is probably very common on intranets.
- Many times, it's helpful
- if the server can make more intelligent decisions about a file's
- contents than the file name allows
- ...even if just to reduce the "why doesn't my page work" calls
- when users improperly name their own files.
- You have to decide if the extra work suits your environment.
- <P>
- When compiling an Apache server, this module should be at or near the
- top of the list of modules in the Configuration file. The modules are
- listed in increasing priority so that will mean this one is used only
- as a last resort, just like it was designed to.
-
- <H2><A NAME="notes">Notes</A></H2>
-
- The following notes apply to the mod_mime_magic module and are
- included here for compliance with contributors' copyright restrictions
- that require their acknowledgment.
-
-<PRE>
+</pre>
+
+ <h2>Performance Issues</h2>
+ This module is not for every system. If your system is barely
+ keeping up with its load or if you're performing a web server
+ benchmark, you may not want to enable this because the
+ processing is not free.
+
+ <p>However, an effort was made to improve the performance of
+ the original file(1) code to make it fit in a busy web server.
+ It was designed for a server where there are thousands of users
+ who publish their own documents. This is probably very common
+ on intranets. Many times, it's helpful if the server can make
+ more intelligent decisions about a file's contents than the
+ file name allows ...even if just to reduce the "why doesn't my
+ page work" calls when users improperly name their own files.
+ You have to decide if the extra work suits your
+ environment.</p>
+
+ <p>When compiling an Apache server, this module should be at or
+ near the top of the list of modules in the Configuration file.
+ The modules are listed in increasing priority so that will mean
+ this one is used only as a last resort, just like it was
+ designed to.</p>
+
+ <h2><a id="notes" name="notes">Notes</a></h2>
+ The following notes apply to the mod_mime_magic module and are
+ included here for compliance with contributors' copyright
+ restrictions that require their acknowledgment.
+<pre>
/*
* mod_mime_magic: MIME type lookup via file magic numbers
* Copyright (c) 1996-1997 Cisco Systems, Inc.
@@ -230,7 +285,7 @@ REL="Help"
* - Memory allocation is done through the Apache API's pool structure.
* - All functions have had necessary Apache API request or server
* structures passed to them where necessary to call other Apache API
- * routines. (<EM>i.e.</EM>, usually for logging, files, or memory allocation in
+ * routines. (<em>i.e.</em>, usually for logging, files, or memory allocation in
* itself or a called function.)
* - struct magic has been converted from an array to a single-ended linked
* list because it only grows one record at a time, it's only accessed
@@ -244,46 +299,31 @@ REL="Help"
* - Command-line flags have been removed since they will never be used here.
*
*/
-</PRE>
-
- <HR>
- <H2><A NAME="mimemagicfile">
- MimeMagicFile
- </A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> MimeMagicFile <EM>file-path</EM>
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> none
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_mime_magic
- <P>
-
- The <CODE>MimeMagicFile</CODE> directive can be used to enable this module,
- the default file is distributed at <CODE>conf/magic</CODE>.
- Non-rooted paths are relative to the ServerRoot. Virtual hosts
- will use the same file as the main server unless a more specific setting
- is used, in which case the more specific setting overrides the main server's
- file.
- <P>
-
- </BODY>
-</HTML>
+</pre>
+ <hr />
+
+ <h2><a id="mimemagicfile"
+ name="mimemagicfile">MimeMagicFile</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MimeMagicFile
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_mime_magic</p>
+
+ <p>The <code>MimeMagicFile</code> directive can be used to
+ enable this module, the default file is distributed at
+ <code>conf/magic</code>. Non-rooted paths are relative to the
+ ServerRoot. Virtual hosts will use the same file as the main
+ server unless a more specific setting is used, in which case
+ the more specific setting overrides the main server's file.</p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_mmap_static.html b/docs/manual/mod/mod_mmap_static.html
index 5a9749c439..2b2c9b3148 100644
--- a/docs/manual/mod/mod_mmap_static.html
+++ b/docs/manual/mod/mod_mmap_static.html
@@ -1,152 +1,126 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_mmap_static</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_mmap_static</H1>
-
- <P>
- This module provides mmap()ing of a statically configured list
- of frequently requested but not changed files.
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Experimental
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_mmap_static.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mmap_static_module
-</P>
-
- <H2>Summary</H2>
- <P>
- This is an <STRONG>experimental</STRONG> module and should be used with
- care. You can easily create a broken site using this module, read this
- document carefully.
- <CODE>mod_mmap_static</CODE> maps a list of statically configured files (via
- <CODE>MMapFile</CODE> directives in the main server configuration) into
- memory through the system call <CODE>mmap()</CODE>. This system
- call is available on most modern Unix derivates, but not on all. There
- are sometimes system-specific limits on the size and number of files that
- can be mmap()d, experimentation is probably the easiest way to find out.
- </P>
- <P>
- This mmap()ing is done once at server start or restart, only. So whenever
- one of the mapped files changes on the filesystem you <EM>have</EM> to
- restart the server by at least sending it a HUP or USR1 signal (see the
- <A HREF="../stopping.html">Stopping and Restarting</A> documentation). To
- reiterate that point: if the files are modified <EM>in place</EM> without
- restarting the server you may end up serving requests that are completely
- bogus. You should update files by unlinking the old copy and putting a new
- copy in place. Most tools such as <CODE>rdist</CODE> and <CODE>mv</CODE> do
- this. The reason why this modules doesn't take care of changes to the files
- is that this check would need an extra <CODE>stat()</CODE> every time which
- is a waste and against the intent of I/O reduction.
- </P>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#mmapfile">MMapFile</A>
- </LI>
- </UL>
-
- <HR>
-
- <H2><A NAME="mmapfile">MMapFile</A> directive</H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> MMapFile <EM>filename</em>
- [<em>filename</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server-config
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>Not applicable</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_mmap_static
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Only available in Apache 1.3 or later
-
- <P>
- The <CODE>MMapFile</CODE> directive maps one or more files (given as
- whitespace separated arguments) into memory at server startup time. They
- are automatically unmapped on a server shutdown. When the files have changed
- on the filesystem at least a HUP or USR1 signal should be send to the server
- to re-mmap them.
- </P>
-
- <P>
- Be careful with the <EM>filename</EM> arguments: They have to literally
- match the filesystem path Apache's URL-to-filename translation handlers
- create. We cannot compare inodes or other stuff to match paths through
- symbolic links <EM>etc.</EM> because that again would cost extra <CODE>stat()</CODE>
- system calls which is not acceptable. This module may or may not work
- with filenames rewritten by <CODE>mod_alias</CODE> or
- <CODE>mod_rewrite</CODE>... it is an experiment after all.
- </P>
-
- <P>
- Notice: You cannot use this for speeding up CGI programs or other files
- which are served by special content handlers. It can only be used for
- regular files which are usually served by the Apache core content handler.
- </P>
-
- Example:
-
- <PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_mmap_static</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_mmap_static</h1>
+
+ <p>This module provides mmap()ing of a statically configured
+ list of frequently requested but not changed files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_mmap_static.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mmap_static_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an <strong>experimental</strong> module and should
+ be used with care. You can easily create a broken site using
+ this module, read this document carefully.
+ <code>mod_mmap_static</code> maps a list of statically
+ configured files (via <code>MMapFile</code> directives in the
+ main server configuration) into memory through the system call
+ <code>mmap()</code>. This system call is available on most
+ modern Unix derivates, but not on all. There are sometimes
+ system-specific limits on the size and number of files that can
+ be mmap()d, experimentation is probably the easiest way to find
+ out.</p>
+
+ <p>This mmap()ing is done once at server start or restart,
+ only. So whenever one of the mapped files changes on the
+ filesystem you <em>have</em> to restart the server by at least
+ sending it a HUP or USR1 signal (see the <a
+ href="../stopping.html">Stopping and Restarting</a>
+ documentation). To reiterate that point: if the files are
+ modified <em>in place</em> without restarting the server you
+ may end up serving requests that are completely bogus. You
+ should update files by unlinking the old copy and putting a new
+ copy in place. Most tools such as <code>rdist</code> and
+ <code>mv</code> do this. The reason why this modules doesn't
+ take care of changes to the files is that this check would need
+ an extra <code>stat()</code> every time which is a waste and
+ against the intent of I/O reduction.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#mmapfile">MMapFile</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="mmapfile" name="mmapfile">MMapFile</a>
+ directive</h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MMapFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server-config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Experimental<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_mmap_static<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Only available
+ in Apache 1.3 or later</p>
+
+ <p>The <code>MMapFile</code> directive maps one or more files
+ (given as whitespace separated arguments) into memory at server
+ startup time. They are automatically unmapped on a server
+ shutdown. When the files have changed on the filesystem at
+ least a HUP or USR1 signal should be send to the server to
+ re-mmap them.</p>
+
+ <p>Be careful with the <em>filename</em> arguments: They have
+ to literally match the filesystem path Apache's URL-to-filename
+ translation handlers create. We cannot compare inodes or other
+ stuff to match paths through symbolic links <em>etc.</em>
+ because that again would cost extra <code>stat()</code> system
+ calls which is not acceptable. This module may or may not work
+ with filenames rewritten by <code>mod_alias</code> or
+ <code>mod_rewrite</code>... it is an experiment after all.</p>
+
+ <p>Notice: You cannot use this for speeding up CGI programs or
+ other files which are served by special content handlers. It
+ can only be used for regular files which are usually served by
+ the Apache core content handler.</p>
+ Example:
+<pre>
MMapFile /usr/local/apache/htdocs/index.html
- </PRE>
-
- <P>
- <STRONG>Note</STRONG>: don't bother asking for a for a <CODE>MMapDir</CODE>
- directive which
- recursively maps all the files in a directory. Use Unix the way it was
- meant to be used. For example, see the
- <A HREF="core.html#include">Include</A> directive, and consider this command:
- <PRE>
+
+</pre>
+
+ <p><strong>Note</strong>: don't bother asking for a for a
+ <code>MMapDir</code> directive which recursively maps all the
+ files in a directory. Use Unix the way it was meant to be used.
+ For example, see the <a href="core.html#include">Include</a>
+ directive, and consider this command:</p>
+<pre>
find /www/htdocs -type f -print \
| sed -e 's/.*/mmapfile &amp;/' &gt; /www/conf/mmap.conf
- </PRE>
+
+</pre>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_negotiation.html b/docs/manual/mod/mod_negotiation.html
index d53bb52c87..ae7bf9f5e2 100644
--- a/docs/manual/mod/mod_negotiation.html
+++ b/docs/manual/mod/mod_negotiation.html
@@ -1,223 +1,228 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_negotiation</H1>
-
-<p>This module provides for <A
-HREF="../content-negotiation.html">content negotiation</A>.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_negotiation.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> negotiation_module
-</P>
-
-<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>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#cachenegotiateddocs">CacheNegotiatedDocs</A>
-<LI><A HREF="#languagepriority">LanguagePriority</A>
-</UL>
-
-<STRONG>See also</STRONG>:
-<A HREF="./mod_mime.html#defaultlanguage">DefaultLanguage</A>,
-<A HREF="./mod_mime.html#addencoding">AddEncoding</A>,
-<A HREF="./mod_mime.html#addlanguage">AddLanguage</A>,
-<A HREF="./mod_mime.html#addtype">AddType</A>, and
-<A HREF="core.html#options">Options</A>.
-
-<H2>Type maps</H2>
-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. Apache only recognizes encodings that are
-defined by an <A HREF="mod_mime.html#addencoding">AddEncoding</A> directive.
-This normally includes the encodings <CODE>x-compress</CODE> for compress'd
-files, and <CODE>x-gzip</CODE> for gzip'd files. The <CODE>x-</CODE> prefix
-is ignored for encoding comparisons.
-<DT>Content-Language:
-<DD>The language of the variant, as an Internet standard language tag
-(RFC 1766). An example is <CODE>en</CODE>, meaning English.
-<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 a
-semi-colon, with a syntax of <CODE>name=value</CODE>. Common parameters
-include:
-<DL>
-<DT>level
-<DD>an integer specifying the version of the media type.
-For <CODE>text/html</CODE> this defaults to 2, otherwise 0.
-<DT>qs
-<DD>a floating-point number with a value in the range 0.0 to 1.0,
- indicating the relative 'quality' of this variant
- compared to the other available variants, independent of the client's
- capabilities. For example, a jpeg file is usually of higher source
- quality than an ascii file if it is attempting to represent a
- photograph. However, if the resource being represented is ascii art,
- then an ascii file would have a higher source quality than a jpeg file.
- All qs values are therefore specific to a given resource.
-</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>
-
-<H2>MultiViews</H2>
-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>
-
-
-
-<HR>
-
-
-<H2><A NAME="cachenegotiateddocs">CacheNegotiatedDocs</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CacheNegotiatedDocs on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>CacheNegotiatedDocs off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_negotiation<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> CacheNegotiatedDocs is only available
-in Apache 1.1 and later. The syntax changed in version 2.0.<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.
-
-<P>Prior to version 2.0, CacheNegotiatedDocs did not take an argument;
-it was turned on by the presence of the directive by itself.
-
-<hr>
-
-<H2><A NAME="languagepriority">LanguagePriority</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt LanguagePriority} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> LanguagePriority <EM>MIME-lang</em>
- [<em>MIME-lang</EM>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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 any other means. Correctly implemented
-HTTP/1.1 requests will mean this directive has no effect.
-
-<P>
-
-<STRONG>See also</STRONG>:
-<A HREF="./mod_mime.html#defaultlanguage">DefaultLanguage</A> and
-<A HREF="./mod_mime.html#addlanguage">AddLanguage</A>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_negotiation</h1>
+
+ <p>This module provides for <a
+ href="../content-negotiation.html">content negotiation</a>.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_negotiation.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ negotiation_module</p>
+
+ <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>
+
+ <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.</li>
+ </ul>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a
+ href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
+
+ <li><a href="#languagepriority">LanguagePriority</a></li>
+ </ul>
+ <strong>See also</strong>: <a
+ href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>, <a
+ href="./mod_mime.html#addencoding">AddEncoding</a>, <a
+ href="./mod_mime.html#addlanguage">AddLanguage</a>, <a
+ href="./mod_mime.html#addtype">AddType</a>, and <a
+ href="core.html#options">Options</a>.
+
+ <h2>Type maps</h2>
+ 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:</dt>
+
+ <dd>The encoding of the file. Apache only recognizes
+ encodings that are defined by an <a
+ href="mod_mime.html#addencoding">AddEncoding</a> directive.
+ This normally includes the encodings <code>x-compress</code>
+ for compress'd files, and <code>x-gzip</code> for gzip'd
+ files. The <code>x-</code> prefix is ignored for encoding
+ comparisons.</dd>
+
+ <dt>Content-Language:</dt>
+
+ <dd>The language of the variant, as an Internet standard
+ language tag (RFC 1766). An example is <code>en</code>,
+ meaning English.</dd>
+
+ <dt>Content-Length:</dt>
+
+ <dd>The length of the file, in bytes. If this header is not
+ present, then the actual length of the file is used.</dd>
+
+ <dt>Content-Type:</dt>
+
+ <dd>
+ The MIME media type of the document, with optional
+ parameters. Parameters are separated from the media type
+ and from one another by a semi-colon, with a syntax of
+ <code>name=value</code>. Common parameters include:
+
+ <dl>
+ <dt>level</dt>
+
+ <dd>an integer specifying the version of the media type.
+ For <code>text/html</code> this defaults to 2, otherwise
+ 0.</dd>
+
+ <dt>qs</dt>
+
+ <dd>a floating-point number with a value in the range 0.0
+ to 1.0, indicating the relative 'quality' of this variant
+ compared to the other available variants, independent of
+ the client's capabilities. For example, a jpeg file is
+ usually of higher source quality than an ascii file if it
+ is attempting to represent a photograph. However, if the
+ resource being represented is ascii art, then an ascii
+ file would have a higher source quality than a jpeg file.
+ All qs values are therefore specific to a given
+ resource.</dd>
+ </dl>
+ Example:
+
+ <blockquote>
+ <code>Content-Type: image/jpeg; qs=0.8</code>
+ </blockquote>
+ </dd>
+
+ <dt>URI:</dt>
+
+ <dd>The path to the file containing this variant, relative to
+ the map file.</dd>
+ </dl>
+
+ <h2>MultiViews</h2>
+ 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.
+ <hr />
+
+ <h2><a id="cachenegotiateddocs"
+ name="cachenegotiateddocs">CacheNegotiatedDocs</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CacheNegotiatedDocs
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>CacheNegotiatedDocs off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_negotiation<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ CacheNegotiatedDocs is only available in Apache 1.1 and later.
+ The syntax changed in version 2.0.
+
+ <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>
+
+ <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.</p>
+
+ <p>Prior to version 2.0, CacheNegotiatedDocs did not take an
+ argument; it was turned on by the presence of the directive by
+ itself.</p>
+ <hr />
+
+ <h2><a id="languagepriority"
+ name="languagepriority">LanguagePriority</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt LanguagePriority} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LanguagePriority
+ <em>MIME-lang</em> [<em>MIME-lang</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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:</p>
+
+ <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>Note that this directive only has an effect if a 'best'
+ language cannot be determined by any other means. Correctly
+ implemented HTTP/1.1 requests will mean this directive has no
+ effect.</p>
+
+ <p><strong>See also</strong>: <a
+ href="./mod_mime.html#defaultlanguage">DefaultLanguage</a> and
+ <a href="./mod_mime.html#addlanguage">AddLanguage</a>
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_proxy.html b/docs/manual/mod/mod_proxy.html
index 61e8216519..f307a84326 100644
--- a/docs/manual/mod/mod_proxy.html
+++ b/docs/manual/mod/mod_proxy.html
@@ -1,26 +1,25 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_proxy</TITLE>
-</HEAD>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
-<blockquote><strong>Note:</strong>
-Mod_proxy has been moved out of the httpd-2.0 tree, but is available
-elsewhere &lt;insert location&gt; for building with the httpd-2.0 source
-distribution.
-</blockquote>
+ <title>Apache module mod_proxy</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <blockquote>
+ <strong>Note:</strong> Mod_proxy has been moved out of the
+ httpd-2.0 tree, but is available elsewhere &lt;insert
+ location&gt; for building with the httpd-2.0 source
+ distribution.
+ </blockquote>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_rewrite.html b/docs/manual/mod/mod_rewrite.html
index 4e12cc47f0..30e298ff5d 100644
--- a/docs/manual/mod/mod_rewrite.html
+++ b/docs/manual/mod/mod_rewrite.html
@@ -1,752 +1,731 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--%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"
->
-<BLOCKQUOTE><!-- page indentation -->
-<!--#include virtual="header.html" -->
-
-<BR>
-<H1 ALIGN="CENTER">Module mod_rewrite<BR>URL Rewriting Engine</H1>
-
-<p>This module provides a rule-based rewriting engine to rewrite requested
-URLs on the fly.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_rewrite.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> rewrite_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.2 and later.
-</P>
-
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<BR>
-<H2>Summary</H2>
-
-<BLOCKQUOTE>
-<BLOCKQUOTE>
-<BLOCKQUOTE>
-<EM>``The great thing about mod_rewrite is it gives you all the
-configurability and flexibility of Sendmail. The downside to
-mod_rewrite is that it gives you all the configurability and
-flexibility of Sendmail.''</EM>
-<DIV ALIGN=RIGHT>
--- Brian Behlendorf<BR>
-Apache Group
-</DIV>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-
-<BLOCKQUOTE>
-<BLOCKQUOTE>
-<BLOCKQUOTE>
-<EM>``
-Despite the tons of examples and docs, mod_rewrite
-is voodoo. Damned cool voodoo, but still voodoo.
-''</EM>
-<DIV ALIGN=RIGHT>
--- Brian Moore<BR>
-bem@news.cmc.net
-</DIV>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-
-Welcome to mod_rewrite, the Swiss Army Knife of URL manipulation!
-
-<P>
-This module uses a rule-based rewriting engine (based on a regular-expression
-parser) to rewrite requested URLs on the fly. It supports an unlimited number
-of rules and an unlimited number of attached rule conditions for each rule to
-provide a really flexible and powerful URL manipulation mechanism. The URL
-manipulations can depend on various tests, for instance server variables,
-environment variables, HTTP headers, time stamps and even external database
-lookups in various formats can be used to achieve a really granular URL
-matching.
-
-<P>
-This module operates on the full URLs (including the path-info part) both in
-per-server context (<CODE>httpd.conf</CODE>) and per-directory context
-(<CODE>.htaccess</CODE>) and can even generate query-string parts on result.
-The rewritten result can lead to internal sub-processing, external request
-redirection or even to an internal proxy throughput.
-
-<P>
-But all this functionality and flexibility has its drawback: complexity. So
-don't expect to understand this entire module in just one day.
-
-<P>
-This module was invented and originally written in April 1996<BR>
-and gifted exclusively to the The Apache Group in July 1997 by
-
-<P>
-<BLOCKQUOTE>
-<A HREF="http://www.engelschall.com/"><CODE>Ralf S. Engelschall</CODE></A><BR>
-<A HREF="mailto:rse@engelschall.com"><CODE>rse@engelschall.com</CODE></A><BR>
-<A HREF="http://www.engelschall.com/"><CODE>www.engelschall.com</CODE></A>
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<H2>Table Of Contents</H2>
-
-<P>
-<STRONG>Internal Processing</STRONG>
-<UL>
- <LI><A HREF="#InternalAPI">API Phases</A>
- <LI><A HREF="#InternalRuleset">Ruleset Processing</A>
- <LI><A HREF="#InternalBackRefs">Regex Back-Reference Availability</A>
-</UL>
-<P>
-<STRONG>Configuration Directives</STRONG>
-<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="#RewriteLock">RewriteLock</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>
-<STRONG>Miscellaneous</STRONG>
-<UL>
- <LI><A HREF="#EnvVar">Environment Variables</A>
- <LI><A HREF="#Solutions">Practical Solutions</A>
-</UL>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<CENTER>
-<H1><A NAME="Internal">Internal Processing</A></H1>
-</CENTER>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<P>
-The internal processing of this module is very complex but needs to be
-explained once even to the average user to avoid common mistakes and to let
-you exploit its full functionality.
-
-<H2><A NAME="InternalAPI">API Phases</A></H2>
-
-<P>
-First you have to understand that when Apache processes a HTTP request it does
-this in phases. A hook for each of these phases is provided by the Apache API.
-Mod_rewrite uses two of these hooks: the URL-to-filename translation hook
-which is used after the HTTP request has been read but before any authorization
-starts and the Fixup hook which is triggered after the authorization phases
-and after the per-directory config files (<CODE>.htaccess</CODE>) have been
-read, but before the content handler is activated.
-
-<P>
-So, after a request comes in and Apache has determined the corresponding
-server (or virtual server) the rewriting engine starts processing of all
-mod_rewrite directives from the per-server configuration in the
-URL-to-filename phase. A few steps later when the final data directories are
-found, the per-directory configuration directives of mod_rewrite are triggered
-in the Fixup phase. In both situations mod_rewrite rewrites URLs either to new
-URLs or to filenames, although there is no obvious distinction between them.
-This is a usage of the API which was not intended to be this way when the API
-was designed, but as of Apache 1.x this is the only way mod_rewrite can
-operate. To make this point more clear remember the following two points:
-
-<OL>
-<LI>Although mod_rewrite rewrites URLs to URLs, URLs to filenames and
- even filenames to filenames, the API currently provides only a
- URL-to-filename hook. In Apache 2.0 the two missing hooks will be
- added to make the processing more clear. But this point has no
- drawbacks for the user, it is just a fact which should be
- remembered: Apache does more in the URL-to-filename hook than the
- API intends for it.
-<P>
-<LI>Unbelievably mod_rewrite provides URL manipulations in per-directory
- context, <EM>i.e.</EM>, within <CODE>.htaccess</CODE> files,
- although these are reached a very long time after the URLs have
- been translated to filenames. It has to be this way because
- <CODE>.htaccess</CODE> files live in the filesystem, so processing
- has already reached this stage. In other words: According to the
- API phases at this time it is too late for any URL manipulations.
- To overcome this chicken and egg problem mod_rewrite uses a trick:
- When you manipulate a URL/filename in per-directory context
- mod_rewrite first rewrites the filename back to its corresponding
- URL (which is usually impossible, but see the <CODE>RewriteBase</CODE>
- directive below for the trick to achieve this) and then initiates
- a new internal sub-request with the new URL. This restarts
- processing of the API phases.
- <P>
- Again mod_rewrite tries hard to make this complicated step totally
- transparent to the user, but you should remember here: While URL
- manipulations in per-server context are really fast and efficient,
- per-directory rewrites are slow and inefficient due to this chicken and
- egg problem. But on the other hand this is the only way mod_rewrite can
- provide (locally restricted) URL manipulations to the average user.
-</OL>
-
-<P>
-Don't forget these two points!
-
-<H2><A NAME="InternalRuleset">Ruleset Processing</A></H2>
-
-Now when mod_rewrite is triggered in these two API phases, it reads the
-configured rulesets from its configuration structure (which itself was either
-created on startup for per-server context or during the directory walk of the
-Apache kernel for per-directory context). Then the URL rewriting engine is
-started with the contained ruleset (one or more rules together with their
-conditions). The operation of the URL rewriting engine itself is exactly the
-same for both configuration contexts. Only the final result processing is
-different.
-
-<P>
-The order of rules in the ruleset is important because the rewriting engine
-processes them in a special (and not very obvious) order. The
-rule is this: The rewriting engine loops through the ruleset rule by rule
-(<CODE>RewriteRule</CODE> directives) and when a particular rule matches it
-optionally loops through existing corresponding conditions
-(<CODE>RewriteCond</CODE> directives). For historical reasons the conditions
-are given first, and so the control flow is a little bit long-winded. See
-Figure 1 for more details.
-
-<P>
-<DIV ALIGN=CENTER>
-<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=0>
-<TR>
-<TD BGCOLOR="#CCCCCC"><IMG
- SRC="../images/mod_rewrite_fig1.gif"
- WIDTH="428" HEIGHT="385"
- ALT="[Needs graphics capability to display]"></TD>
-</TR>
-<TR>
-<TD ALIGN=CENTER>
-<STRONG>Figure 1:</STRONG> The control flow through the rewriting ruleset
-</TD>
-</TR>
-</TABLE>
-</DIV>
-
-<P>
-As you can see, first the URL is matched against the <EM>Pattern</EM> of each
-rule. When it fails mod_rewrite immediately stops processing this rule and
-continues with the next rule. If the <EM>Pattern</EM> matches, mod_rewrite
-looks for corresponding rule conditions. If none are present, it just
-substitutes the URL with a new value which is constructed from the string
-<EM>Substitution</EM> and goes on with its rule-looping. But if conditions
-exist, it starts an inner loop for processing them in the order that
-they are listed. For conditions the logic is different: we don't match a
-pattern against the current URL. Instead we first create a string
-<EM>TestString</EM> by expanding variables, back-references, map lookups,
-<EM>etc.</EM> and then we try to match <EM>CondPattern</EM> against it. If the
-pattern doesn't match, the complete set of conditions and the corresponding
-rule fails. If the pattern matches, then the next condition is processed
-until no more conditions are available. If all conditions match, processing
-is continued with the substitution of the URL with <EM>Substitution</EM>.
-
-<h2><a name="quoting">Quoting Special Characters</a></h2>
-<p>
-As of Apache 1.3.20, special characters in <i>TestString</i> and
-<i>Substitution</i> strings can be escaped (that is, treated as
-normal characters without their usual special meaning) by prefixing them
-with a slosh ('\') character. In other words, you can include an
-actual dollar-sign character in a <i>Substitution</i> string
-by using '<code>\$</code>'; this keeps mod_rewrite from trying
-to treat it as a backreference.
-</p>
-
-<H2><A NAME="InternalBackRefs">Regex Back-Reference Availability</A></H2>
-
-One important thing here has to be remembered: Whenever you
-use parentheses in <EM>Pattern</EM> or in one of the <EM>CondPattern</EM>,
-back-references are internally created which can be used with the
-strings <CODE>$N</CODE> and <CODE>%N</CODE> (see below). These
-are available for creating the strings <EM>Substitution</EM> and
-<EM>TestString</EM>. Figure 2 shows to which locations the back-references are
-transfered for expansion.
-
-<P>
-<DIV ALIGN=CENTER>
-<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=0>
-<TR>
-<TD BGCOLOR="#CCCCCC"><IMG
- SRC="../images/mod_rewrite_fig2.gif"
- WIDTH="381" HEIGHT="179"
- ALT="[Needs graphics capability to display]"></TD>
-</TR>
-<TR>
-<TD ALIGN=CENTER>
-<STRONG>Figure 2:</STRONG> The back-reference flow through a rule
-</TD>
-</TR>
-</TABLE>
-</DIV>
-
-<P>
-We know this was a crash course on mod_rewrite's internal processing. But
-you will benefit from this knowledge when reading the following documentation
-of the available directives.
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<CENTER>
-<H1><A NAME="Configuration">Configuration Directives</A></H1>
-</CENTER>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<H3><A NAME="RewriteEngine">RewriteEngine</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A>
- RewriteEngine on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <CODE>RewriteEngine off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A>
- server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2<BR>
-
-<P>
-The <CODE>RewriteEngine</CODE> 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 <CODE>SCRIPT_URx</CODE>
-environment variables.
-
-<P>
-Use this directive to disable the module instead of commenting out
-all the <CODE>RewriteRule</CODE> directives!
-
-<P>
-Note that, by default, rewrite configurations are not inherited.
-This means that you need to have a <CODE>RewriteEngine on</CODE>
-directive for each virtual host in which you wish to use it.
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteOptions">RewriteOptions</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteOptions <EM>Option</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2<BR>
-
-<P>
-The <CODE>RewriteOptions</CODE> 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 are inherited. In per-directory
- context this means that conditions and rules of the parent directory's
- <CODE>.htaccess</CODE> configuration are inherited.
-</UL>
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteLog">RewriteLog</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteLog <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>Not applicable</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2<BR>
-
-<P>
-The <CODE>RewriteLog</CODE> 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 ('<CODE>/</CODE>') 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="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Note</STRONG>: 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 then output to a logfile it still creates the logfile
-output internally. <STRONG>This will slow down the server with no advantage
-to the administrator!</STRONG>
-To disable logging either remove or comment out the
-<CODE>RewriteLog</CODE> directive or use <CODE>RewriteLogLevel 0</CODE>!
-</TD></TR>
-</TABLE>
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Security</STRONG>: 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>
-<STRONG>Example:</STRONG>
-<BLOCKQUOTE>
-<PRE>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <blockquote>
+ <!-- page indentation -->
+ <!--#include virtual="header.html" -->
+ <br />
+
+
+ <h1 align="CENTER">Module mod_rewrite<br />
+ URL Rewriting Engine</h1>
+
+ <p>This module provides a rule-based rewriting engine to
+ rewrite requested URLs on the fly.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_rewrite.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ rewrite_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.2 and later.</p>
+ <hr noshade="noshade" size="1" />
+ <br />
+
+
+ <h2>Summary</h2>
+
+ <blockquote>
+ <blockquote>
+ <blockquote>
+ <em>``The great thing about mod_rewrite is it gives you
+ all the configurability and flexibility of Sendmail.
+ The downside to mod_rewrite is that it gives you all
+ the configurability and flexibility of Sendmail.''</em>
+
+
+ <div align="RIGHT">
+ -- Brian Behlendorf<br />
+ Apache Group
+ </div>
+ </blockquote>
+ </blockquote>
+ </blockquote>
+
+ <blockquote>
+ <blockquote>
+ <blockquote>
+ <em>`` Despite the tons of examples and docs,
+ mod_rewrite is voodoo. Damned cool voodoo, but still
+ voodoo. ''</em>
+
+ <div align="RIGHT">
+ -- Brian Moore<br />
+ bem@news.cmc.net
+ </div>
+ </blockquote>
+ </blockquote>
+ </blockquote>
+ Welcome to mod_rewrite, the Swiss Army Knife of URL
+ manipulation!
+
+ <p>This module uses a rule-based rewriting engine (based on a
+ regular-expression parser) to rewrite requested URLs on the
+ fly. It supports an unlimited number of rules and an
+ unlimited number of attached rule conditions for each rule to
+ provide a really flexible and powerful URL manipulation
+ mechanism. The URL manipulations can depend on various tests,
+ for instance server variables, environment variables, HTTP
+ headers, time stamps and even external database lookups in
+ various formats can be used to achieve a really granular URL
+ matching.</p>
+
+ <p>This module operates on the full URLs (including the
+ path-info part) both in per-server context
+ (<code>httpd.conf</code>) and per-directory context
+ (<code>.htaccess</code>) and can even generate query-string
+ parts on result. The rewritten result can lead to internal
+ sub-processing, external request redirection or even to an
+ internal proxy throughput.</p>
+
+ <p>But all this functionality and flexibility has its
+ drawback: complexity. So don't expect to understand this
+ entire module in just one day.</p>
+
+ <p>This module was invented and originally written in April
+ 1996<br />
+ and gifted exclusively to the The Apache Group in July 1997
+ by</p>
+
+ <blockquote>
+ <a href="http://www.engelschall.com/"><code>Ralf S.
+ Engelschall</code></a><br />
+ <a
+ href="mailto:rse@engelschall.com"><code>rse@engelschall.com</code></a><br />
+ <a
+ href="http://www.engelschall.com/"><code>www.engelschall.com</code></a>
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <h2>Table Of Contents</h2>
+
+ <p><strong>Internal Processing</strong></p>
+
+ <ul>
+ <li><a href="#InternalAPI">API Phases</a></li>
+
+ <li><a href="#InternalRuleset">Ruleset Processing</a></li>
+
+ <li><a href="#InternalBackRefs">Regex Back-Reference
+ Availability</a></li>
+ </ul>
+
+ <p><strong>Configuration Directives</strong></p>
+
+ <ul>
+ <li><a href="#RewriteEngine">RewriteEngine</a></li>
+
+ <li><a href="#RewriteOptions">RewriteOptions</a></li>
+
+ <li><a href="#RewriteLog">RewriteLog</a></li>
+
+ <li><a href="#RewriteLogLevel">RewriteLogLevel</a></li>
+
+ <li><a href="#RewriteLock">RewriteLock</a></li>
+
+ <li><a href="#RewriteMap">RewriteMap</a></li>
+
+ <li><a href="#RewriteBase">RewriteBase</a></li>
+
+ <li><a href="#RewriteCond">RewriteCond</a></li>
+
+ <li><a href="#RewriteRule">RewriteRule</a></li>
+ </ul>
+ <strong>Miscellaneous</strong>
+
+ <ul>
+ <li><a href="#EnvVar">Environment Variables</a></li>
+
+ <li><a href="#Solutions">Practical Solutions</a></li>
+ </ul>
+ <hr noshade="noshade" size="1" />
+
+ <center>
+ <h1><a id="Internal" name="Internal">Internal
+ Processing</a></h1>
+ </center>
+ <hr noshade="noshade" size="1" />
+
+ <p>The internal processing of this module is very complex but
+ needs to be explained once even to the average user to avoid
+ common mistakes and to let you exploit its full
+ functionality.</p>
+
+ <h2><a id="InternalAPI" name="InternalAPI">API
+ Phases</a></h2>
+
+ <p>First you have to understand that when Apache processes a
+ HTTP request it does this in phases. A hook for each of these
+ phases is provided by the Apache API. Mod_rewrite uses two of
+ these hooks: the URL-to-filename translation hook which is
+ used after the HTTP request has been read but before any
+ authorization starts and the Fixup hook which is triggered
+ after the authorization phases and after the per-directory
+ config files (<code>.htaccess</code>) have been read, but
+ before the content handler is activated.</p>
+
+ <p>So, after a request comes in and Apache has determined the
+ corresponding server (or virtual server) the rewriting engine
+ starts processing of all mod_rewrite directives from the
+ per-server configuration in the URL-to-filename phase. A few
+ steps later when the final data directories are found, the
+ per-directory configuration directives of mod_rewrite are
+ triggered in the Fixup phase. In both situations mod_rewrite
+ rewrites URLs either to new URLs or to filenames, although
+ there is no obvious distinction between them. This is a usage
+ of the API which was not intended to be this way when the API
+ was designed, but as of Apache 1.x this is the only way
+ mod_rewrite can operate. To make this point more clear
+ remember the following two points:</p>
+
+ <ol>
+ <li>Although mod_rewrite rewrites URLs to URLs, URLs to
+ filenames and even filenames to filenames, the API
+ currently provides only a URL-to-filename hook. In Apache
+ 2.0 the two missing hooks will be added to make the
+ processing more clear. But this point has no drawbacks for
+ the user, it is just a fact which should be remembered:
+ Apache does more in the URL-to-filename hook than the API
+ intends for it.</li>
+
+ <li>
+ Unbelievably mod_rewrite provides URL manipulations in
+ per-directory context, <em>i.e.</em>, within
+ <code>.htaccess</code> files, although these are reached
+ a very long time after the URLs have been translated to
+ filenames. It has to be this way because
+ <code>.htaccess</code> files live in the filesystem, so
+ processing has already reached this stage. In other
+ words: According to the API phases at this time it is too
+ late for any URL manipulations. To overcome this chicken
+ and egg problem mod_rewrite uses a trick: When you
+ manipulate a URL/filename in per-directory context
+ mod_rewrite first rewrites the filename back to its
+ corresponding URL (which is usually impossible, but see
+ the <code>RewriteBase</code> directive below for the
+ trick to achieve this) and then initiates a new internal
+ sub-request with the new URL. This restarts processing of
+ the API phases.
+
+ <p>Again mod_rewrite tries hard to make this complicated
+ step totally transparent to the user, but you should
+ remember here: While URL manipulations in per-server
+ context are really fast and efficient, per-directory
+ rewrites are slow and inefficient due to this chicken and
+ egg problem. But on the other hand this is the only way
+ mod_rewrite can provide (locally restricted) URL
+ manipulations to the average user.</p>
+ </li>
+ </ol>
+
+ <p>Don't forget these two points!</p>
+
+ <h2><a id="InternalRuleset" name="InternalRuleset">Ruleset
+ Processing</a></h2>
+ Now when mod_rewrite is triggered in these two API phases, it
+ reads the configured rulesets from its configuration
+ structure (which itself was either created on startup for
+ per-server context or during the directory walk of the Apache
+ kernel for per-directory context). Then the URL rewriting
+ engine is started with the contained ruleset (one or more
+ rules together with their conditions). The operation of the
+ URL rewriting engine itself is exactly the same for both
+ configuration contexts. Only the final result processing is
+ different.
+
+ <p>The order of rules in the ruleset is important because the
+ rewriting engine processes them in a special (and not very
+ obvious) order. The rule is this: The rewriting engine loops
+ through the ruleset rule by rule (<code>RewriteRule</code>
+ directives) and when a particular rule matches it optionally
+ loops through existing corresponding conditions
+ (<code>RewriteCond</code> directives). For historical reasons
+ the conditions are given first, and so the control flow is a
+ little bit long-winded. See Figure 1 for more details.</p>
+
+ <div align="CENTER">
+ <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td bgcolor="#CCCCCC"><img
+ src="../images/mod_rewrite_fig1.gif" width="428"
+ height="385"
+ alt="[Needs graphics capability to display]" /></td>
+ </tr>
+
+ <tr>
+ <td align="CENTER"><strong>Figure 1:</strong> The
+ control flow through the rewriting ruleset</td>
+ </tr>
+ </table>
+ </div>
+
+ <p>As you can see, first the URL is matched against the
+ <em>Pattern</em> of each rule. When it fails mod_rewrite
+ immediately stops processing this rule and continues with the
+ next rule. If the <em>Pattern</em> matches, mod_rewrite looks
+ for corresponding rule conditions. If none are present, it
+ just substitutes the URL with a new value which is
+ constructed from the string <em>Substitution</em> and goes on
+ with its rule-looping. But if conditions exist, it starts an
+ inner loop for processing them in the order that they are
+ listed. For conditions the logic is different: we don't match
+ a pattern against the current URL. Instead we first create a
+ string <em>TestString</em> by expanding variables,
+ back-references, map lookups, <em>etc.</em> and then we try
+ to match <em>CondPattern</em> against it. If the pattern
+ doesn't match, the complete set of conditions and the
+ corresponding rule fails. If the pattern matches, then the
+ next condition is processed until no more conditions are
+ available. If all conditions match, processing is continued
+ with the substitution of the URL with
+ <em>Substitution</em>.</p>
+
+ <h2><a id="quoting" name="quoting">Quoting Special
+ Characters</a></h2>
+
+ <p>As of Apache 1.3.20, special characters in
+ <i>TestString</i> and <i>Substitution</i> strings can be
+ escaped (that is, treated as normal characters without their
+ usual special meaning) by prefixing them with a slosh ('\')
+ character. In other words, you can include an actual
+ dollar-sign character in a <i>Substitution</i> string by
+ using '<code>\$</code>'; this keeps mod_rewrite from trying
+ to treat it as a backreference.</p>
+
+ <h2><a id="InternalBackRefs" name="InternalBackRefs">Regex
+ Back-Reference Availability</a></h2>
+ One important thing here has to be remembered: Whenever you
+ use parentheses in <em>Pattern</em> or in one of the
+ <em>CondPattern</em>, back-references are internally created
+ which can be used with the strings <code>$N</code> and
+ <code>%N</code> (see below). These are available for creating
+ the strings <em>Substitution</em> and <em>TestString</em>.
+ Figure 2 shows to which locations the back-references are
+ transfered for expansion.
+
+ <div align="CENTER">
+ <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td bgcolor="#CCCCCC"><img
+ src="../images/mod_rewrite_fig2.gif" width="381"
+ height="179"
+ alt="[Needs graphics capability to display]" /></td>
+ </tr>
+
+ <tr>
+ <td align="CENTER"><strong>Figure 2:</strong> The
+ back-reference flow through a rule</td>
+ </tr>
+ </table>
+ </div>
+
+ <p>We know this was a crash course on mod_rewrite's internal
+ processing. But you will benefit from this knowledge when
+ reading the following documentation of the available
+ directives.</p>
+ <hr noshade="noshade" size="1" />
+
+ <center>
+ <h1><a id="Configuration"
+ name="Configuration">Configuration Directives</a></h1>
+ </center>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteEngine"
+ name="RewriteEngine">RewriteEngine</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteEngine
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>RewriteEngine
+ off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.2<br />
+
+
+ <p>The <code>RewriteEngine</code> 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 <code>SCRIPT_URx</code>
+ environment variables.</p>
+
+ <p>Use this directive to disable the module instead of
+ commenting out all the <code>RewriteRule</code>
+ directives!</p>
+
+ <p>Note that, by default, rewrite configurations are not
+ inherited. This means that you need to have a
+ <code>RewriteEngine on</code> directive for each virtual host
+ in which you wish to use it.</p>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteOptions"
+ name="RewriteOptions">RewriteOptions</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteOptions
+ <em>Option</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.2<br />
+
+
+ <p>The <code>RewriteOptions</code> 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:</p>
+
+ <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 are inherited. In per-directory context this means
+ that conditions and rules of the parent directory's
+ <code>.htaccess</code> configuration are inherited.</li>
+ </ul>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteLog" name="RewriteLog">RewriteLog</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteLog
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.2<br />
+
+
+ <p>The <code>RewriteLog</code> 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
+ ('<code>/</code>') 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="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Note</strong>: 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 then output to a
+ logfile it still creates the logfile output internally.
+ <strong>This will slow down the server with no advantage
+ to the administrator!</strong> To disable logging either
+ remove or comment out the <code>RewriteLog</code>
+ directive or use <code>RewriteLogLevel 0</code>!</td>
+ </tr>
+ </table>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Security</strong>: 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><strong>Example:</strong></p>
+
+ <blockquote>
+<pre>
RewriteLog "/usr/local/var/apache/logs/rewrite.log"
-</PRE>
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteLogLevel">RewriteLogLevel</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteLogLevel <EM>Level</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>RewriteLogLevel 0</CODE>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>Not applicable</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2<BR>
-
-<P>
-The <CODE>RewriteLogLevel</CODE> directive sets 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="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Notice:</STRONG> Using a high value for <EM>Level</EM> will slow down
-your Apache server dramatically! Use the rewriting logfile at
-a <EM>Level</EM> greater than 2 only for debugging!
-</TD></TR>
-</TABLE>
-
-
-<P>
-<STRONG>Example:</STRONG>
-<BLOCKQUOTE>
-<PRE>
+</pre>
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteLogLevel"
+ name="RewriteLogLevel">RewriteLogLevel</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteLogLevel
+ <em>Level</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>RewriteLogLevel 0</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.2<br />
+
+
+ <p>The <code>RewriteLogLevel</code> directive sets 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>
+
+ <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="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Notice:</strong> Using a high value for
+ <em>Level</em> will slow down your Apache server
+ dramatically! Use the rewriting logfile at a
+ <em>Level</em> greater than 2 only for debugging!</td>
+ </tr>
+ </table>
+
+ <p><strong>Example:</strong></p>
+
+ <blockquote>
+<pre>
RewriteLogLevel 3
-</PRE>
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteLock">RewriteLock</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteLock <EM>file-path</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>Not applicable</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3<BR>
-
-<P>
-This directive sets the filename for a synchronization lockfile which
-mod_rewrite needs to communicate with <SAMP>RewriteMap</SAMP>
-<EM>programs</EM>. Set this lockfile to a local path (not on a NFS-mounted
-device) when you want to use a rewriting map-program. It is not required for
-other types of rewriting maps.
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteMap">RewriteMap</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteMap <EM>MapName </EM>
- <EM>MapType</EM>:<EM>MapSource</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> not used per default<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>Not applicable</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2 (partially), Apache 1.3<BR>
-
-<P>
-The <CODE>RewriteMap</CODE> directive defines a <EM>Rewriting Map</EM>
-which can be used inside rule substitution strings by the mapping-functions
-to insert/substitute fields through a key lookup. The source of this
-lookup can be of various types.
-<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 one of the following constructs:
-
-<BLOCKQUOTE><STRONG>
-<CODE>${</CODE> <EM>MapName</EM> <CODE>:</CODE> <EM>LookupKey</EM>
-<CODE>}</CODE><BR>
-<CODE>${</CODE> <EM>MapName</EM> <CODE>:</CODE> <EM>LookupKey</EM>
-<CODE>|</CODE> <EM>DefaultValue</EM> <CODE>}</CODE>
-</STRONG></BLOCKQUOTE>
-
-When such a construct 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 construct is substituted by <EM>SubstValue</EM>. If
-the key is not found then it is substituted by <EM>DefaultValue</EM> or
-by the empty string if no <EM>DefaultValue</EM> was specified.
-
-<P>
-The following combinations for <EM>MapType</EM> and <EM>MapSource</EM>
-can be used:
-
-<UL>
-<LI><STRONG>Standard Plain Text</STRONG><BR>
- MapType: <CODE>txt</CODE>, MapSource: Unix filesystem path to valid regular
- file
- <P>
- This is the standard rewriting map feature where the <EM>MapSource</EM> is
- a plain ASCII file containing either blank lines, comment lines (starting
- with a '#' character) or pairs like the following - one per line.
-
- <BLOCKQUOTE><STRONG>
- <EM>MatchingKey</EM> <EM>SubstValue</EM>
- </STRONG></BLOCKQUOTE>
-
- <P>
- Example:
-<P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+</pre>
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteLock"
+ name="RewriteLock">RewriteLock</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteLock
+ <em>file-path</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.3<br />
+
+
+ <p>This directive sets the filename for a synchronization
+ lockfile which mod_rewrite needs to communicate with
+ <samp>RewriteMap</samp> <em>programs</em>. Set this lockfile
+ to a local path (not on a NFS-mounted device) when you want
+ to use a rewriting map-program. It is not required for other
+ types of rewriting maps.</p>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteMap" name="RewriteMap">RewriteMap</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteMap
+ <em>MapName</em> <em>MapType</em>:<em>MapSource</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> not used per
+ default<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> <em>Not
+ applicable</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.2
+ (partially), Apache 1.3<br />
+
+
+ <p>The <code>RewriteMap</code> directive defines a
+ <em>Rewriting Map</em> which can be used inside rule
+ substitution strings by the mapping-functions to
+ insert/substitute fields through a key lookup. The source of
+ this lookup can be of various types.</p>
+
+ <p>The <a id="mapfunc" 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 one of the following constructs:</p>
+
+ <blockquote>
+ <strong><code>${</code> <em>MapName</em> <code>:</code>
+ <em>LookupKey</em> <code>}</code><br />
+ <code>${</code> <em>MapName</em> <code>:</code>
+ <em>LookupKey</em> <code>|</code> <em>DefaultValue</em>
+ <code>}</code></strong>
+ </blockquote>
+ When such a construct 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 construct is substituted by
+ <em>SubstValue</em>. If the key is not found then it is
+ substituted by <em>DefaultValue</em> or by the empty string
+ if no <em>DefaultValue</em> was specified.
+
+ <p>The following combinations for <em>MapType</em> and
+ <em>MapSource</em> can be used:</p>
+
+ <ul>
+ <li>
+ <strong>Standard Plain Text</strong><br />
+ MapType: <code>txt</code>, MapSource: Unix filesystem
+ path to valid regular file
+
+ <p>This is the standard rewriting map feature where the
+ <em>MapSource</em> is a plain ASCII file containing
+ either blank lines, comment lines (starting with a '#'
+ character) or pairs like the following - one per
+ line.</p>
+
+ <blockquote>
+ <strong><em>MatchingKey</em>
+ <em>SubstValue</em></strong>
+ </blockquote>
+
+ <p>Example:</p>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
##
## map.txt -- rewriting map
##
Ralf.S.Engelschall rse # Bastard Operator From Hell
Mr.Joe.Average joe # Mr. Average
-</PRE></TD></TR>
-</TABLE>
-
-<P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
RewriteMap real-to-user txt:/path/to/file/map.txt
-</PRE></TD></TR>
-</TABLE>
-
-<P>
-<LI><STRONG>Randomized Plain Text</STRONG><BR>
- MapType: <CODE>rnd</CODE>, MapSource: Unix filesystem path to valid regular
- file
- <P>
- This is identical to the Standard Plain Text variant above but with a
- special
- post-processing feature: After looking up a value it is parsed according
- to contained ``<CODE>|</CODE>'' characters which have the meaning of
- ``or''.
- In other words they indicate a set of alternatives from which the actual
- returned value is chosen randomly. Although this sounds crazy and useless,
- it
- was actually designed for load balancing in a reverse proxy situation where
- the looked up values are server names.
- Example:
-<P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+ </li>
+
+ <li>
+ <strong>Randomized Plain Text</strong><br />
+ MapType: <code>rnd</code>, MapSource: Unix filesystem
+ path to valid regular file
+
+ <p>This is identical to the Standard Plain Text variant
+ above but with a special post-processing feature: After
+ looking up a value it is parsed according to contained
+ ``<code>|</code>'' characters which have the meaning of
+ ``or''. In other words they indicate a set of
+ alternatives from which the actual returned value is
+ chosen randomly. Although this sounds crazy and useless,
+ it was actually designed for load balancing in a reverse
+ proxy situation where the looked up values are server
+ names. Example:</p>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
##
## map.txt -- rewriting map
##
static www1|www2|www3|www4
dynamic www5|www6
-</PRE></TD></TR>
-</TABLE>
-
-<P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
RewriteMap servers rnd:/path/to/file/map.txt
-</PRE></TD></TR>
-</TABLE>
-
-<P>
-<LI><STRONG>Hash File</STRONG><BR>
- MapType: <CODE>dbm</CODE>, MapSource: Unix filesystem path to valid
- regular file
- <P>
- Here the source is a binary NDBM format file containing the same contents
- as a <EM>Plain Text</EM> format file, but in a special representation
- which is optimized for really fast lookups. You can create such a file with
- any NDBM tool or with the following Perl script:
- <P>
- <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
- <TR><TD><PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+ </li>
+
+ <li>
+ <strong>Hash File</strong><br />
+ MapType: <code>dbm</code>, MapSource: Unix filesystem
+ path to valid regular file
+
+ <p>Here the source is a binary NDBM format file
+ containing the same contents as a <em>Plain Text</em>
+ format file, but in a special representation which is
+ optimized for really fast lookups. You can create such a
+ file with any NDBM tool or with the following Perl
+ script:</p>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
#!/path/to/bin/perl
##
## txt2dbm -- convert txt map to dbm format
@@ -760,169 +739,198 @@ while (&lt;TXT&gt;) {
$DB{$1} = $2 if (m|^\s*(\S+)\s+(\S+)$|);
}
dbmclose(%DB);
-close(TXT)</PRE></TD></TR>
- </TABLE>
- <P>
- <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
- <TR><TD><PRE>$ txt2dbm map.txt map.db </PRE></TD></TR>
- </TABLE>
-<P>
-<LI><STRONG>Internal Function</STRONG><BR>
- MapType: <CODE>int</CODE>, MapSource: Internal Apache function
- <P>
- Here the source is an internal Apache function. Currently you cannot
- create your own, but the following functions already exists:
- <UL>
- <LI><STRONG>toupper</STRONG>:<BR>
- Converts the looked up key to all upper case.
- <LI><STRONG>tolower</STRONG>:<BR>
- Converts the looked up key to all lower case.
- <LI><STRONG>escape</STRONG>:<BR>
- Translates special characters in the looked up key to hex-encodings.
- <LI><STRONG>unescape</STRONG>:<BR>
- Translates hex-encodings in the looked up key back to special characters.
- </UL>
-<P>
-<LI><STRONG>External Rewriting Program</STRONG><BR>
- MapType: <CODE>prg</CODE>, MapSource: Unix filesystem path to valid
- regular file
- <P>
- Here the source is a program, not a map file. To create it you
- can use the language of your choice, but the result has to be a
- executable (<EM>i.e.</EM>, either object-code or a script with the
- magic cookie trick '<CODE>#!/path/to/interpreter</CODE>' as the
- first line).
- <P>
- This program is started once at startup of the Apache servers and then
- communicates with the rewriting engine over its <CODE>stdin</CODE> and
- <CODE>stdout</CODE> file-handles. For each map-function lookup it will
- receive the key to lookup as a newline-terminated string on
- <CODE>stdin</CODE>. It then has to give back the looked-up value as a
- newline-terminated string on <CODE>stdout</CODE> or the four-character
- string ``<CODE>NULL</CODE>'' if it fails (<EM>i.e.</EM>, there is no
- corresponding value
- for the given key). A trivial program which will implement a 1:1 map
- (<EM>i.e.</EM>, key == value) could be:
- <P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+close(TXT)
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" cellspacing="1" cellpadding="5"
+ bgcolor="#F0F0F0">
+ <tr>
+ <td>
+<pre>
+$ txt2dbm map.txt map.db
+</pre>
+ </td>
+ </tr>
+ </table>
+ </li>
+
+ <li>
+ <strong>Internal Function</strong><br />
+ MapType: <code>int</code>, MapSource: Internal Apache
+ function
+
+ <p>Here the source is an internal Apache function.
+ Currently you cannot create your own, but the following
+ functions already exists:</p>
+
+ <ul>
+ <li><strong>toupper</strong>:<br />
+ Converts the looked up key to all upper case.</li>
+
+ <li><strong>tolower</strong>:<br />
+ Converts the looked up key to all lower case.</li>
+
+ <li><strong>escape</strong>:<br />
+ Translates special characters in the looked up key to
+ hex-encodings.</li>
+
+ <li><strong>unescape</strong>:<br />
+ Translates hex-encodings in the looked up key back to
+ special characters.</li>
+ </ul>
+ </li>
+
+ <li>
+ <strong>External Rewriting Program</strong><br />
+ MapType: <code>prg</code>, MapSource: Unix filesystem
+ path to valid regular file
+
+ <p>Here the source is a program, not a map file. To
+ create it you can use the language of your choice, but
+ the result has to be a executable (<em>i.e.</em>, either
+ object-code or a script with the magic cookie trick
+ '<code>#!/path/to/interpreter</code>' as the first
+ line).</p>
+
+ <p>This program is started once at startup of the Apache
+ servers and then communicates with the rewriting engine
+ over its <code>stdin</code> and <code>stdout</code>
+ file-handles. For each map-function lookup it will
+ receive the key to lookup as a newline-terminated string
+ on <code>stdin</code>. It then has to give back the
+ looked-up value as a newline-terminated string on
+ <code>stdout</code> or the four-character string
+ ``<code>NULL</code>'' if it fails (<em>i.e.</em>, there
+ is no corresponding value for the given key). A trivial
+ program which will implement a 1:1 map (<em>i.e.</em>,
+ 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;) {
# ...put here any transformations or lookups...
print $_;
}
-</PRE></TD></TR>
-</TABLE>
- <P>
- But be very careful:<BR>
- <OL>
- <LI>``<EM>Keep it simple, stupid</EM>'' (KISS), because
- if this program hangs it will hang the Apache server
- when the rule occurs.
- <LI>Avoid one common mistake: never do buffered I/O on <CODE>stdout</CODE>!
- This will cause a deadloop! Hence the ``<CODE>$|=1</CODE>'' in the
- above example...
- <LI>Use the <SAMP>RewriteLock</SAMP> directive to define a lockfile
- mod_rewrite can use to synchronize the communication to the program.
- By default no such synchronization takes place.
- </OL>
-</UL>
-
-The <CODE>RewriteMap</CODE> directive can occur more than once. For each
-mapping-function use one <CODE>RewriteMap</CODE> directive to declare its
-rewriting mapfile. While you cannot <STRONG>declare</STRONG> a map in
-per-directory context it is of course possible to <STRONG>use</STRONG>
-this map in per-directory context.
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Note:</STRONG> For plain text and DBM format files the looked-up
-keys are cached in-core
-until the <CODE>mtime</CODE> of the mapfile changes or the server does a
-restart. This way you can have map-functions in rules which are used
-for <STRONG>every</STRONG> request. This is no problem, because the
-external lookup only happens once!
-</TD></TR>
-</TABLE>
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteBase">RewriteBase</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteBase <EM>URL-path</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>default is the physical directory path</EM>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>FileInfo</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2<BR>
-
-<P>
-The <CODE>RewriteBase</CODE> directive explicitly sets the base URL for
-per-directory rewrites. As you will see below, <CODE>RewriteRule</CODE> can be
-used in per-directory config files (<CODE>.htaccess</CODE>). There it will act
-locally, <EM>i.e.</EM>, 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 back to the path.
-
-<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. <STRONG>But at most websites URLs are
-NOT directly related to physical filename paths, so this
-assumption will usually be wrong!</STRONG> There you have to use the
-<CODE>RewriteBase</CODE> directive to specify the correct URL-prefix.
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Notice:</STRONG> If your webserver's URLs are <STRONG>not</STRONG>
-directly related to physical file paths, you have to use
-<CODE>RewriteBase</CODE> in every
-<CODE>.htaccess</CODE> files where you want to use <CODE>RewriteRule</CODE>
-directives.
-</TD></TR>
-</TABLE>
-
-<P>
-<STRONG>Example:</STRONG>
-
-<BLOCKQUOTE>
- Assume the following per-directory config file:
-
-<P>
-<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=5 BGCOLOR="#F0F0F0">
-<TR><TD><PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <p>But be very careful:<br />
+ </p>
+
+ <ol>
+ <li>``<em>Keep it simple, stupid</em>'' (KISS), because
+ if this program hangs it will hang the Apache server
+ when the rule occurs.</li>
+
+ <li>Avoid one common mistake: never do buffered I/O on
+ <code>stdout</code>! This will cause a deadloop! Hence
+ the ``<code>$|=1</code>'' in the above example...</li>
+
+ <li>Use the <samp>RewriteLock</samp> directive to
+ define a lockfile mod_rewrite can use to synchronize
+ the communication to the program. By default no such
+ synchronization takes place.</li>
+ </ol>
+ </li>
+ </ul>
+ The <code>RewriteMap</code> directive can occur more than
+ once. For each mapping-function use one
+ <code>RewriteMap</code> directive to declare its rewriting
+ mapfile. While you cannot <strong>declare</strong> a map in
+ per-directory context it is of course possible to
+ <strong>use</strong> this map in per-directory context.
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Note:</strong> For plain text and DBM format
+ files the looked-up keys are cached in-core until the
+ <code>mtime</code> of the mapfile changes or the server
+ does a restart. This way you can have map-functions in
+ rules which are used for <strong>every</strong> request.
+ This is no problem, because the external lookup only
+ happens once!</td>
+ </tr>
+ </table>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteBase"
+ name="RewriteBase">RewriteBase</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteBase
+ <em>URL-path</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>default is the
+ physical directory path</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache
+ 1.2<br />
+
+
+ <p>The <code>RewriteBase</code> directive explicitly sets the
+ base URL for per-directory rewrites. As you will see below,
+ <code>RewriteRule</code> can be used in per-directory config
+ files (<code>.htaccess</code>). There it will act locally,
+ <em>i.e.</em>, 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 back to the
+ path.</p>
+
+ <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. <strong>But at most websites URLs are NOT
+ directly related to physical filename paths, so this
+ assumption will usually be wrong!</strong> There you have to
+ use the <code>RewriteBase</code> directive to specify the
+ correct URL-prefix.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Notice:</strong> If your webserver's URLs are
+ <strong>not</strong> directly related to physical file
+ paths, you have to use <code>RewriteBase</code> in every
+ <code>.htaccess</code> files where you want to use
+ <code>RewriteRule</code> directives.</td>
+ </tr>
+ </table>
+
+ <p><strong>Example:</strong></p>
+
+ <blockquote>
+ Assume the following per-directory config file:
+
+ <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, <EM>i.e.</EM>, the server
-# has a 'Alias /xyz /abc/def' directive <EM>e.g.</EM>
+# Remember: /abc/def is the physical path of /xyz, <em>i.e.</em>, the server
+# has a 'Alias /xyz /abc/def' directive <em>e.g.</em>
#
RewriteEngine On
@@ -933,25 +941,25 @@ RewriteBase /xyz
# now the rewriting rules
RewriteRule ^oldstuff\.html$ newstuff.html
-</PRE></TD></TR>
-</TABLE>
-
-<P>
-In the above example, a request to <CODE>/xyz/oldstuff.html</CODE>
-gets correctly
-rewritten to the physical file <CODE>/abc/def/newstuff.html</CODE>.
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<FONT SIZE=-1>
-<STRONG>Note - For Apache hackers:</STRONG><BR>
-The following list gives detailed information about the internal
-processing steps:
-
-<P>
-<PRE>
-Request:
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <p>In the above example, a request to
+ <code>/xyz/oldstuff.html</code> gets correctly rewritten to
+ the physical file <code>/abc/def/newstuff.html</code>.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td>
+ <font size="-1"><strong>Note - For Apache
+ hackers:</strong><br />
+ The following list gives detailed information about
+ the internal processing steps:</font>
+<pre>
+<font size="-1">Request:
/xyz/oldstuff.html
Internal Processing:
@@ -962,397 +970,428 @@ Internal Processing:
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 internally 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>
-
-<H3><A NAME="RewriteCond">RewriteCond</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteCond <EM>TestString</EM>
- <EM>CondPattern</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>FileInfo</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2 (partially), Apache 1.3<BR>
-
-<P>
-The <CODE>RewriteCond</CODE> directive defines a rule condition. Precede a
-<CODE>RewriteRule</CODE> directive with one or more <CODE>RewriteCond</CODE>
-directives.
-
-The following rewriting rule is only used if its pattern matches the current
-state of the URI <STRONG>and</STRONG> if these additional conditions apply
-too.
-
-<P>
-<EM>TestString</EM> is a string which can contains the following
-expanded constructs in addition to plain text:
-
-<UL>
-<LI><STRONG>RewriteRule backreferences</STRONG>: These are backreferences of
- the form
-
-<BLOCKQUOTE><STRONG>
-<CODE>$N</CODE>
-</STRONG></BLOCKQUOTE>
-
-(0 &lt;= N &lt;= 9) which provide access to the grouped parts (parenthesis!)
-of the pattern from the corresponding <CODE>RewriteRule</CODE> directive (the
-one following the current bunch of <CODE>RewriteCond</CODE> directives).
-
-<P>
-<LI><STRONG>RewriteCond backreferences</STRONG>: These are backreferences of
-the form
-
-<BLOCKQUOTE><STRONG>
-<CODE>%N</CODE>
-</STRONG></BLOCKQUOTE>
-
-(1 &lt;= N &lt;= 9) which provide access to the grouped parts (parentheses!) of
-the pattern from the last matched <CODE>RewriteCond</CODE> directive in the
-current bunch of conditions.
-
-<P>
-<LI><STRONG>RewriteMap expansions</STRONG>: These are expansions of the form
-
-<BLOCKQUOTE><STRONG>
-<CODE>${mapname:key|default}</CODE>
-</STRONG></BLOCKQUOTE>
-
-See <A HREF="#mapfunc">the documentation for RewriteMap</A> for more details.
-
-<P>
-<LI><STRONG>Server-Variables</STRONG>: These are variables
- of the form
-
-<BLOCKQUOTE><STRONG>
-<CODE>%{</CODE> <EM>NAME_OF_VARIABLE</EM> <CODE>}</CODE>
-</STRONG></BLOCKQUOTE>
-
-where <EM>NAME_OF_VARIABLE</EM> can be a string
-taken from the following list:
-
-<P>
-<TABLE BGCOLOR="#F0F0F0" CELLSPACING=0 CELLPADDING=5>
-<TR>
-<TD VALIGN=TOP>
-<STRONG>HTTP headers:</STRONG><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>
-<STRONG>connection &amp; request:</STRONG><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>
-<STRONG>server internals:</STRONG><P>
-<FONT SIZE=-1>
-DOCUMENT_ROOT<BR>
-SERVER_ADMIN<BR>
-SERVER_NAME<BR>
-SERVER_ADDR<BR>
-SERVER_PORT<BR>
-SERVER_PROTOCOL<BR>
-SERVER_SOFTWARE<BR>
-</FONT>
-</TD>
-
-<TD VALIGN=TOP>
-<STRONG>system stuff:</STRONG><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>
-<STRONG>specials:</STRONG><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="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-
-<p><STRONG>Notice:</STRONG> These variables all correspond to
-the similarly named HTTP MIME-headers, C variables of the Apache
-server or <CODE>struct tm</CODE> fields of the Unix system. Most
-are documented elsewhere in the Manual or in the CGI specification.
-Those that are special to mod_rewrite include:</p>
-
-<dl>
-<dt><code>IS_SUBREQ</code></dt>
-<dd>Will contain the text "true" if the request currently
-being processed is a sub-request, "false" otherwise. Sub-requests may
-be generated by modules that need to resolve additional files or URIs
-in order to complete their tasks.</dd>
-
-<dt><code>API_VERSION</code></dt>
-<dd>This is the version of the Apache module API (the internal
-interface between server and module) in the current httpd build, as
-defined in include/ap_mmn.h. The module API version corresponds to the
-version of Apache in use (in the release version of Apache 1.3.14, for
-instance, it is 19990320:10), but is mainly of interest to module
-authors.</dd>
-
-<dt><code>THE_REQUEST</code></dt>
-<dd>The full HTTP request line sent by the browser to the server
-(e.g., "<code>GET /index.html HTTP/1.1</code>"). This does not include
-any additional headers sent by the browser.</dd>
-
-<dt><code>REQUEST_URI</code></dt>
-<dd>The resource requested in the HTTP request line. (In the
-example above, this would be "/index.html".)</dd>
-
-<dt><code>REQUEST_FILENAME</code></dt>
-<dd>The full local filesystem path to the file or script
-matching the request.</dd>
-</dl>
-
-</TD></TR>
-</TABLE>
-
-</UL>
-
-<P>
-Special Notes:
-
-<OL>
-<LI>The variables SCRIPT_FILENAME and REQUEST_FILENAME contain the same
-value, <EM>i.e.</EM>, the value of the <CODE>filename</CODE> field of
-the internal
-<CODE>request_rec</CODE> 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 <CODE>uri</CODE>
-field of <CODE>request_rec</CODE>).
-
-<P>
-<LI>There is the special format: <CODE>%{ENV:variable}</CODE> where
-<EM>variable</EM> can be any environment variable. This is looked-up via
-internal Apache structures and (if not found there) via <CODE>getenv()</CODE>
-from the Apache server process.
-
-<P>
-<LI>There is the special format: <CODE>%{HTTP:header}</CODE> where
-<EM>header</EM> can be any HTTP MIME-header name. This is looked-up
-from the HTTP request. Example: <CODE>%{HTTP:Proxy-Connection}</CODE>
-is the value of the HTTP header ``<CODE>Proxy-Connection:</CODE>''.
-
-<P>
-<LI>There is the special format <CODE>%{LA-U:variable}</CODE> for look-aheads
-which perform an internal (URL-based) sub-request to determine the final value
-of <EM>variable</EM>. Use this when you want to use a variable for rewriting
-which is actually set later in an API phase and thus is not available at the
-current stage. For instance when you want to rewrite according to the
-<CODE>REMOTE_USER</CODE> variable from within the per-server context
-(<CODE>httpd.conf</CODE> file) you have to use <CODE>%{LA-U:REMOTE_USER}</CODE>
-because this variable is set by the authorization phases which come
-<EM>after</EM> the URL translation phase where mod_rewrite operates. On the
-other hand, because mod_rewrite implements its per-directory context
-(<CODE>.htaccess</CODE> file) via the Fixup phase of the API and because the
-authorization phases come <EM>before</EM> this phase, you just can use
-<CODE>%{REMOTE_USER}</CODE> there.
-
-<P>
-<LI>There is the special format: <CODE>%{LA-F:variable}</CODE> which performs an
-internal (filename-based) sub-request to determine the final value of
-<EM>variable</EM>. Most of the time this is the same as LA-U above.
-</OL>
-
-<P>
-<EM>CondPattern</EM> is the condition pattern, <EM>i.e.</EM>, a regular
-expression
-which is applied to the current instance of the <EM>TestString</EM>,
-<EM>i.e.</EM>, <EM>TestString</EM> is evaluated and then matched against
-<EM>CondPattern</EM>.
-
-<P>
-<STRONG>Remember:</STRONG> <EM>CondPattern</EM> is a standard
-<EM>Extended Regular Expression</EM> with some additions:
-
-<OL>
-<LI>You can prefix the pattern string with a '<CODE>!</CODE>' character
-(exclamation mark) to specify a <STRONG>non</STRONG>-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>'<STRONG>&lt;CondPattern</STRONG>' (is lexically lower)<BR>
-Treats the <EM>CondPattern</EM> as a plain string and compares it
-lexically to <EM>TestString</EM>. True if
-<EM>TestString</EM> is lexically lower than <EM>CondPattern</EM>.
-<P>
-<LI>'<STRONG>&gt;CondPattern</STRONG>' (is lexically greater)<BR>
-Treats the <EM>CondPattern</EM> as a plain string and compares it
-lexically to <EM>TestString</EM>. True if
-<EM>TestString</EM> is lexically greater than <EM>CondPattern</EM>.
-<P>
-<LI>'<STRONG>=CondPattern</STRONG>' (is lexically equal)<BR>
-Treats the <EM>CondPattern</EM> as a plain string and compares it
-lexically to <EM>TestString</EM>. True if
-<EM>TestString</EM> is lexically equal to <EM>CondPattern</EM>, i.e the
-two strings are exactly equal (character by character).
-If <EM>CondPattern</EM> is just <SAMP>""</SAMP> (two quotation marks) this
-compares <EM>TestString</EM> to the empty string.
-<P>
-<LI>'<STRONG>-d</STRONG>' (is <STRONG>d</STRONG>irectory)<BR>
-Treats the <EM>TestString</EM> as a pathname and
-tests if it exists and is a directory.
-<P>
-<LI>'<STRONG>-f</STRONG>' (is regular <STRONG>f</STRONG>ile)<BR>
-Treats the <EM>TestString</EM> as a pathname and
-tests if it exists and is a regular file.
-<P>
-<LI>'<STRONG>-s</STRONG>' (is regular file with <STRONG>s</STRONG>ize)<BR>
-Treats the <EM>TestString</EM> as a pathname and
-tests if it exists and is a regular file with size greater than zero.
-<P>
-<LI>'<STRONG>-l</STRONG>' (is symbolic <STRONG>l</STRONG>ink)<BR>
-Treats the <EM>TestString</EM> as a pathname and
-tests if it exists and is a symbolic link.
-<P>
-<LI>'<STRONG>-F</STRONG>' (is existing file via subrequest)<BR>
-Checks if <EM>TestString</EM> 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>'<STRONG>-U</STRONG>' (is existing URL via subrequest)<BR>
-Checks if <EM>TestString</EM> 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 server's performance!
-</UL>
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Notice:</STRONG>
-All of these tests can also be prefixed by an exclamation mark ('!')
-to negate their meaning.
-</TD></TR>
-</TABLE>
-</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 <CODE>RewriteCond</CODE> directive. <EM>Flags</EM>
-is a comma-separated list of the following flags:
-
-<UL>
-<LI>'<STRONG><CODE>nocase|NC</CODE></STRONG>' (<STRONG>n</STRONG>o <STRONG>c</STRONG>ase)<BR>
- This makes the test case-insensitive, <EM>i.e.</EM>, there is
- no difference between 'A-Z' and 'a-z' both in the expanded
- <EM>TestString</EM> and the <EM>CondPattern</EM>.
- This flag is effective only for comparisons between
- <EM>TestString</EM> and <EM>CondPattern</EM>. It has no
- effect on filesystem and subrequest checks.
-<P>
-<LI>'<STRONG><CODE>ornext|OR</CODE></STRONG>' (<STRONG>or</STRONG> next condition)<BR>
- Use this to combine rule conditions with a local OR instead of the
- implicit AND. Typical example:
- <P>
-<BLOCKQUOTE><PRE>
+</font>
+</pre>
+ <font size="-1">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
+ internally 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>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteCond"
+ name="RewriteCond">RewriteCond</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteCond
+ <em>TestString</em> <em>CondPattern</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.2
+ (partially), Apache 1.3<br />
+
+
+ <p>The <code>RewriteCond</code> directive defines a rule
+ condition. Precede a <code>RewriteRule</code> directive with
+ one or more <code>RewriteCond</code> directives. The
+ following rewriting rule is only used if its pattern matches
+ the current state of the URI <strong>and</strong> if these
+ additional conditions apply too.</p>
+
+ <p><em>TestString</em> is a string which can contains the
+ following expanded constructs in addition to plain text:</p>
+
+ <ul>
+ <li>
+ <strong>RewriteRule backreferences</strong>: These are
+ backreferences of the form
+
+ <blockquote>
+ <strong><code>$N</code></strong>
+ </blockquote>
+ (0 &lt;= N &lt;= 9) which provide access to the grouped
+ parts (parenthesis!) of the pattern from the
+ corresponding <code>RewriteRule</code> directive (the one
+ following the current bunch of <code>RewriteCond</code>
+ directives).
+ </li>
+
+ <li>
+ <strong>RewriteCond backreferences</strong>: These are
+ backreferences of the form
+
+ <blockquote>
+ <strong><code>%N</code></strong>
+ </blockquote>
+ (1 &lt;= N &lt;= 9) which provide access to the grouped
+ parts (parentheses!) of the pattern from the last matched
+ <code>RewriteCond</code> directive in the current bunch
+ of conditions.
+ </li>
+
+ <li>
+ <strong>RewriteMap expansions</strong>: These are
+ expansions of the form
+
+ <blockquote>
+ <strong><code>${mapname:key|default}</code></strong>
+ </blockquote>
+ See <a href="#mapfunc">the documentation for
+ RewriteMap</a> for more details.
+ </li>
+
+ <li>
+ <strong>Server-Variables</strong>: These are variables of
+ the form
+
+ <blockquote>
+ <strong><code>%{</code> <em>NAME_OF_VARIABLE</em>
+ <code>}</code></strong>
+ </blockquote>
+ where <em>NAME_OF_VARIABLE</em> can be a string taken
+ from the following list:
+
+ <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td valign="TOP">
+ <strong>HTTP headers:</strong>
+
+ <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></p>
+ </td>
+
+ <td valign="TOP">
+ <strong>connection &amp; request:</strong>
+
+ <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></p>
+ </td>
+ </tr>
+
+ <tr>
+ <td valign="TOP">
+ <strong>server internals:</strong>
+
+ <p><font size="-1">DOCUMENT_ROOT<br />
+ SERVER_ADMIN<br />
+ SERVER_NAME<br />
+ SERVER_ADDR<br />
+ SERVER_PORT<br />
+ SERVER_PROTOCOL<br />
+ SERVER_SOFTWARE<br />
+ </font></p>
+ </td>
+
+ <td valign="TOP">
+ <strong>system stuff:</strong>
+
+ <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></p>
+ </td>
+
+ <td valign="TOP">
+ <strong>specials:</strong>
+
+ <p><font size="-1">API_VERSION<br />
+ THE_REQUEST<br />
+ REQUEST_URI<br />
+ REQUEST_FILENAME<br />
+ IS_SUBREQ<br />
+ </font></p>
+ </td>
+ </tr>
+ </table>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td>
+ <p><strong>Notice:</strong> These variables all
+ correspond to the similarly named HTTP
+ MIME-headers, C variables of the Apache server or
+ <code>struct tm</code> fields of the Unix system.
+ Most are documented elsewhere in the Manual or in
+ the CGI specification. Those that are special to
+ mod_rewrite include:</p>
+
+ <dl>
+ <dt><code>IS_SUBREQ</code></dt>
+
+ <dd>Will contain the text "true" if the request
+ currently being processed is a sub-request,
+ "false" otherwise. Sub-requests may be generated
+ by modules that need to resolve additional files
+ or URIs in order to complete their tasks.</dd>
+
+ <dt><code>API_VERSION</code></dt>
+
+ <dd>This is the version of the Apache module API
+ (the internal interface between server and
+ module) in the current httpd build, as defined in
+ include/ap_mmn.h. The module API version
+ corresponds to the version of Apache in use (in
+ the release version of Apache 1.3.14, for
+ instance, it is 19990320:10), but is mainly of
+ interest to module authors.</dd>
+
+ <dt><code>THE_REQUEST</code></dt>
+
+ <dd>The full HTTP request line sent by the
+ browser to the server (e.g., "<code>GET
+ /index.html HTTP/1.1</code>"). This does not
+ include any additional headers sent by the
+ browser.</dd>
+
+ <dt><code>REQUEST_URI</code></dt>
+
+ <dd>The resource requested in the HTTP request
+ line. (In the example above, this would be
+ "/index.html".)</dd>
+
+ <dt><code>REQUEST_FILENAME</code></dt>
+
+ <dd>The full local filesystem path to the file or
+ script matching the request.</dd>
+ </dl>
+ </td>
+ </tr>
+ </table>
+ </li>
+ </ul>
+
+ <p>Special Notes:</p>
+
+ <ol>
+ <li>The variables SCRIPT_FILENAME and REQUEST_FILENAME
+ contain the same value, <em>i.e.</em>, the value of the
+ <code>filename</code> field of the internal
+ <code>request_rec</code> 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
+ <code>uri</code> field of <code>request_rec</code>).</li>
+
+ <li>There is the special format:
+ <code>%{ENV:variable}</code> where <em>variable</em> can be
+ any environment variable. This is looked-up via internal
+ Apache structures and (if not found there) via
+ <code>getenv()</code> from the Apache server process.</li>
+
+ <li>There is the special format:
+ <code>%{HTTP:header}</code> where <em>header</em> can be
+ any HTTP MIME-header name. This is looked-up from the HTTP
+ request. Example: <code>%{HTTP:Proxy-Connection}</code> is
+ the value of the HTTP header
+ ``<code>Proxy-Connection:</code>''.</li>
+
+ <li>There is the special format
+ <code>%{LA-U:variable}</code> for look-aheads which perform
+ an internal (URL-based) sub-request to determine the final
+ value of <em>variable</em>. Use this when you want to use a
+ variable for rewriting which is actually set later in an
+ API phase and thus is not available at the current stage.
+ For instance when you want to rewrite according to the
+ <code>REMOTE_USER</code> variable from within the
+ per-server context (<code>httpd.conf</code> file) you have
+ to use <code>%{LA-U:REMOTE_USER}</code> because this
+ variable is set by the authorization phases which come
+ <em>after</em> the URL translation phase where mod_rewrite
+ operates. On the other hand, because mod_rewrite implements
+ its per-directory context (<code>.htaccess</code> file) via
+ the Fixup phase of the API and because the authorization
+ phases come <em>before</em> this phase, you just can use
+ <code>%{REMOTE_USER}</code> there.</li>
+
+ <li>There is the special format:
+ <code>%{LA-F:variable}</code> which performs an internal
+ (filename-based) sub-request to determine the final value
+ of <em>variable</em>. Most of the time this is the same as
+ LA-U above.</li>
+ </ol>
+
+ <p><em>CondPattern</em> is the condition pattern,
+ <em>i.e.</em>, a regular expression which is applied to the
+ current instance of the <em>TestString</em>, <em>i.e.</em>,
+ <em>TestString</em> is evaluated and then matched against
+ <em>CondPattern</em>.</p>
+
+ <p><strong>Remember:</strong> <em>CondPattern</em> is a
+ standard <em>Extended Regular Expression</em> with some
+ additions:</p>
+
+ <ol>
+ <li>You can prefix the pattern string with a
+ '<code>!</code>' character (exclamation mark) to specify a
+ <strong>non</strong>-matching pattern.</li>
+
+ <li>
+ There are some special variants of <em>CondPatterns</em>.
+ Instead of real regular expression strings you can also
+ use one of the following:
+
+ <ul>
+ <li>'<strong>&lt;CondPattern</strong>' (is lexically
+ lower)<br />
+ Treats the <em>CondPattern</em> as a plain string and
+ compares it lexically to <em>TestString</em>. True if
+ <em>TestString</em> is lexically lower than
+ <em>CondPattern</em>.</li>
+
+ <li>'<strong>&gt;CondPattern</strong>' (is lexically
+ greater)<br />
+ Treats the <em>CondPattern</em> as a plain string and
+ compares it lexically to <em>TestString</em>. True if
+ <em>TestString</em> is lexically greater than
+ <em>CondPattern</em>.</li>
+
+ <li>'<strong>=CondPattern</strong>' (is lexically
+ equal)<br />
+ Treats the <em>CondPattern</em> as a plain string and
+ compares it lexically to <em>TestString</em>. True if
+ <em>TestString</em> is lexically equal to
+ <em>CondPattern</em>, i.e the two strings are exactly
+ equal (character by character). If <em>CondPattern</em>
+ is just <samp>""</samp> (two quotation marks) this
+ compares <em>TestString</em> to the empty string.</li>
+
+ <li>'<strong>-d</strong>' (is
+ <strong>d</strong>irectory)<br />
+ Treats the <em>TestString</em> as a pathname and tests
+ if it exists and is a directory.</li>
+
+ <li>'<strong>-f</strong>' (is regular
+ <strong>f</strong>ile)<br />
+ Treats the <em>TestString</em> as a pathname and tests
+ if it exists and is a regular file.</li>
+
+ <li>'<strong>-s</strong>' (is regular file with
+ <strong>s</strong>ize)<br />
+ Treats the <em>TestString</em> as a pathname and tests
+ if it exists and is a regular file with size greater
+ than zero.</li>
+
+ <li>'<strong>-l</strong>' (is symbolic
+ <strong>l</strong>ink)<br />
+ Treats the <em>TestString</em> as a pathname and tests
+ if it exists and is a symbolic link.</li>
+
+ <li>'<strong>-F</strong>' (is existing file via
+ subrequest)<br />
+ Checks if <em>TestString</em> 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!</li>
+
+ <li>'<strong>-U</strong>' (is existing URL via
+ subrequest)<br />
+ Checks if <em>TestString</em> 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 server's performance!</li>
+ </ul>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Notice:</strong> All of these tests can
+ also be prefixed by an exclamation mark ('!') to
+ negate their meaning.</td>
+ </tr>
+ </table>
+ </li>
+ </ol>
+
+ <p>Additionally you can set special flags for
+ <em>CondPattern</em> by appending</p>
+
+ <blockquote>
+ <strong><code>[</code><em>flags</em><code>]</code></strong>
+ </blockquote>
+ as the third argument to the <code>RewriteCond</code>
+ directive. <em>Flags</em> is a comma-separated list of the
+ following flags:
+
+ <ul>
+ <li>'<strong><code>nocase|NC</code></strong>'
+ (<strong>n</strong>o <strong>c</strong>ase)<br />
+ This makes the test case-insensitive, <em>i.e.</em>, there
+ is no difference between 'A-Z' and 'a-z' both in the
+ expanded <em>TestString</em> and the <em>CondPattern</em>.
+ This flag is effective only for comparisons between
+ <em>TestString</em> and <em>CondPattern</em>. It has no
+ effect on filesystem and subrequest checks.</li>
+
+ <li>
+ '<strong><code>ornext|OR</code></strong>'
+ (<strong>or</strong> next condition)<br />
+ Use this to combine rule conditions with a local OR
+ instead of the implicit AND. Typical example:
+
+ <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 would have to write the cond/rule three times.
-</UL>
-
-<P>
-<STRONG>Example:</STRONG>
-<BLOCKQUOTE>
-
-To rewrite the Homepage of a site according to the ``<CODE>User-Agent:</CODE>''
-header of the request, you can use the following:
-
-<BLOCKQUOTE><PRE>
+</pre>
+ </blockquote>
+ Without this flag you would have to write the cond/rule
+ three times.
+ </li>
+ </ul>
+
+ <p><strong>Example:</strong></p>
+
+ <blockquote>
+ To rewrite the Homepage of a site according to the
+ ``<code>User-Agent:</code>'' header of the request, you can
+ use the following:
+
+ <blockquote>
+<pre>
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]
@@ -1360,437 +1399,532 @@ 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, <EM>etc.</EM> If you use the Lynx browser (which is Terminal-based), then you
-get the min homepage, which contains no images, no tables, <EM>etc.</EM> If you
-use any other browser you get the standard homepage.
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-<P>
-
-<H3><A NAME="RewriteRule">RewriteRule</A></H3>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> RewriteRule <EM>Pattern</EM> <EM>Substitution</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>None</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> <EM>FileInfo</EM><BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_rewrite.c<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.2 (partially), Apache 1.3<BR>
-
-<P>
-The <CODE>RewriteRule</CODE> directive is the real rewriting workhorse. The
-directive can occur more than once. Each directive then defines one single
-rewriting rule. The <STRONG>definition order</STRONG> of these rules is
-<STRONG>important</STRONG>, 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 and later 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 originally requested URL, because
-any number of rules may already have 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>Text:</STRONG>
- <STRONG><CODE>.</CODE></STRONG> Any single character
- <STRONG><CODE>[</CODE></STRONG>chars<STRONG><CODE>]</CODE></STRONG> Character class: One of chars
- <STRONG><CODE>[^</CODE></STRONG>chars<STRONG><CODE>]</CODE></STRONG> Character class: None of chars
- text1<STRONG><CODE>|</CODE></STRONG>text2 Alternative: text1 or text2
-
-<STRONG>Quantifiers:</STRONG>
- <STRONG><CODE>?</CODE></STRONG> 0 or 1 of the preceding text
- <STRONG><CODE>*</CODE></STRONG> 0 or N of the preceding text (N &gt; 0)
- <STRONG><CODE>+</CODE></STRONG> 1 or N of the preceding text (N &gt; 1)
-
-<STRONG>Grouping:</STRONG>
- <STRONG><CODE>(</CODE></STRONG>text<STRONG><CODE>)</CODE></STRONG> Grouping of text
+</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, <em>etc.</em>
+ If you use the Lynx browser (which is Terminal-based), then
+ you get the min homepage, which contains no images, no
+ tables, <em>etc.</em> If you use any other browser you get
+ the standard homepage.
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <h3><a id="RewriteRule"
+ name="RewriteRule">RewriteRule</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> RewriteRule
+ <em>Pattern</em> <em>Substitution</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>None</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config,
+ virtual host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a>
+ <em>FileInfo</em><br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.2
+ (partially), Apache 1.3<br />
+
+
+ <p>The <code>RewriteRule</code> directive is the real
+ rewriting workhorse. The directive can occur more than once.
+ Each directive then defines one single rewriting rule. The
+ <strong>definition order</strong> of these rules is
+ <strong>important</strong>, because this order is used when
+ applying the rules at run-time.</p>
+
+ <p><a id="patterns" name="patterns"><em>Pattern</em></a> can
+ be (for Apache 1.1.x a System V8 and for Apache 1.2.x and
+ later a POSIX) <a id="regexp" 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 originally requested URL,
+ because any number of rules may already have matched and made
+ alterations to it.</p>
+
+ <p>Some hints about the syntax of regular expressions:</p>
+
+ <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td valign="TOP">
+<pre>
+<strong>Text:</strong>
+ <strong><code>.</code></strong> Any single character
+ <strong><code>[</code></strong>chars<strong><code>]</code></strong> Character class: One of chars
+ <strong><code>[^</code></strong>chars<strong><code>]</code></strong> Character class: None of chars
+ text1<strong><code>|</code></strong>text2 Alternative: text1 or text2
+
+<strong>Quantifiers:</strong>
+ <strong><code>?</code></strong> 0 or 1 of the preceding text
+ <strong><code>*</code></strong> 0 or N of the preceding text (N &gt; 0)
+ <strong><code>+</code></strong> 1 or N of the preceding text (N &gt; 1)
+
+<strong>Grouping:</strong>
+ <strong><code>(</code></strong>text<strong><code>)</code></strong> Grouping of text
(either to set the borders of an alternative or
- for making backreferences where the <STRONG>N</STRONG>th group can
- be used on the RHS of a RewriteRule with <CODE>$</CODE><STRONG>N</STRONG>)
-
-<STRONG>Anchors:</STRONG>
- <STRONG><CODE>^</CODE></STRONG> Start of line anchor
- <STRONG><CODE>$</CODE></STRONG> End of line anchor
-
-<STRONG>Escaping:</STRONG>
- <STRONG><CODE>\</CODE></STRONG>char escape that particular char
- (for instance to specify the chars "<CODE>.[]()</CODE>" <EM>etc.</EM>)
-</PRE>
-</TD>
-</TR>
-</TABLE>
-
-<P>
-For more information about regular expressions either have a look at your
-local regex(3) manpage or its <CODE>src/regex/regex.3</CODE> copy in the
-Apache 1.3 distribution. If you are interested in more detailed
-information about regular expressions and their variants (POSIX regex, Perl
-regex, <EM>etc.</EM>) have a look at the following dedicated book on this topic:
-
-<BLOCKQUOTE>
-<EM>Mastering Regular Expressions</EM><BR>
-Jeffrey E.F. Friedl<BR>
-Nutshell Handbook Series<BR>
-O'Reilly &amp; Associates, Inc. 1997<BR>
-ISBN 1-56592-257-3<BR>
-</BLOCKQUOTE>
-
-<P>
-Additionally in mod_rewrite the NOT character ('<CODE>!</CODE>') is a possible
-pattern prefix. This gives you the ability to negate a pattern; to say, for
-instance: ``<EM>if the current URL does <STRONG>NOT</STRONG> match this
-pattern</EM>''. This can be used for exceptional cases, where it is easier to
-match the negative pattern, or as a last default rule.
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Notice:</STRONG> 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 <CODE>$N</CODE> 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>back-references <CODE>$N</CODE> to the RewriteRule pattern
-<LI>back-references <CODE>%N</CODE> to the last matched RewriteCond pattern
-<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><STRONG>N</STRONG> (<STRONG>N</STRONG>=0..9) identifiers which
-will be replaced by the contents of the <STRONG>N</STRONG>th group of the matched
-<EM>Pattern</EM>. The server-variables are the same as for the
-<EM>TestString</EM> of a <CODE>RewriteCond</CODE> directive. The
-mapping-functions come from the <CODE>RewriteMap</CODE> 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 <STRONG>completely replaced</STRONG> by the <EM>Substitution</EM> and the
-rewriting process goes on until there are no more rules unless explicitly
-terminated by a <CODE><STRONG>L</STRONG></CODE> flag - see below.
-
-<P>
-There is a special substitution string named '<CODE>-</CODE>' which means:
-<STRONG>NO substitution</STRONG>! Sounds silly? No, it is useful to provide rewriting
-rules which <STRONG>only</STRONG> match some URLs but do no substitution, <EM>e.g.</EM>, in
-conjunction with the <STRONG>C</STRONG> (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="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Note</STRONG>: There is a special feature: When you prefix a substitution
-field with <CODE>http://</CODE><EM>thishost</EM>[<EM>:thisport</EM>] then
-<STRONG>mod_rewrite</STRONG> 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.
-</TD></TR>
-</TABLE>
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Remember:</STRONG> An unconditional external redirect to your own server will
-not work with the prefix <CODE>http://thishost</CODE> because of this feature.
-To achieve such a self-redirect, you have to use the <STRONG>R</STRONG>-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 <CODE>RewriteRule</CODE> directive. <EM>Flags</EM> is a
-comma-separated list of the following flags:
-
-<UL>
-<LI>'<STRONG><CODE>redirect|R</CODE> [=<EM>code</EM>]</STRONG>' (force <A NAME="redirect"><STRONG>r</STRONG>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 <EM>code</EM> 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: <CODE>temp</CODE> (default), <CODE>permanent</CODE>,
- <CODE>seeother</CODE>.
- Use it for rules which should
- canonicalize the URL and give it back to the client, <EM>e.g.</EM>, translate
- ``<CODE>/~</CODE>'' into ``<CODE>/u/</CODE>'' or always append a slash to
- <CODE>/u/</CODE><EM>user</EM>, etc.<BR>
- <P>
- <STRONG>Note:</STRONG> 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>, rewriting continues.
- 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 <STRONG>f</STRONG>orbidden)<BR>
- This forces the current URL to be forbidden, <EM>i.e.</EM>, 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 <STRONG>g</STRONG>one)<BR>
- This forces the current URL to be gone, <EM>i.e.</EM>, it immediately sends back a
- HTTP response of 410 (GONE). Use this flag to mark pages which no longer
- exist as gone.
-<P>
-<LI>'<STRONG><CODE>proxy|P</CODE></STRONG>' (force <STRONG>p</STRONG>roxy)<BR>
- This flag forces the substitution part to be internally forced as a proxy
- request and immediately (<EM>i.e.</EM>, rewriting rule processing stops here) put
- through the <A HREF="mod_proxy.html">proxy module</A>. You have to make
- sure that the substitution string is a valid URI (<EM>e.g.</EM>, typically starting
- with <CODE>http://</CODE><EM>hostname</EM>) 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 <A
- HREF="mod_proxy.html#proxypass">ProxyPass</A> directive, to map some
- remote stuff into the namespace of the local server.
- <P>
- Notice: To use this functionality make sure you have the proxy module
- compiled into your Apache server program. If you don't know please check
- whether <CODE>mod_proxy.c</CODE> is part of the ``<CODE>httpd -l</CODE>''
- output. If yes, this functionality is available to mod_rewrite. If not,
- then you first have to rebuild the ``<CODE>httpd</CODE>'' program with
- mod_proxy enabled.
-<P>
-<LI>'<STRONG><CODE>last|L</CODE></STRONG>' (<STRONG>l</STRONG>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. For
- example, use it to rewrite the root-path URL ('<CODE>/</CODE>') to a real
- one, <EM>e.g.</EM>, '<CODE>/e/www/</CODE>'.
-<P>
-<LI>'<STRONG><CODE>next|N</CODE></STRONG>' (<STRONG>n</STRONG>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, <EM>i.e.</EM>, to
- immediately go to the top of the loop. <BR>
- <STRONG>But be careful not to create an infinite loop!</STRONG>
-<P>
-<LI>'<STRONG><CODE>chain|C</CODE></STRONG>' (<STRONG>c</STRONG>hained with next rule)<BR>
- This flag chains the current rule with the next rule (which itself can
- be chained with the following rule, <EM>etc.</EM>). This has the following
- effect: if a rule matches, then processing continues as usual, <EM>i.e.</EM>, the
- flag has no effect. If the rule does <STRONG>not</STRONG> match, then all following
- chained rules are skipped. For instance, use it to remove the
- ``<CODE>.www</CODE>'' part inside a per-directory rule set when you let an
- external redirect happen (where the ``<CODE>.www</CODE>'' part should not to
- occur!).
-<P>
-<LI>'<STRONG><CODE>type|T</CODE></STRONG>=<EM>MIME-type</EM>' (force MIME <STRONG>t</STRONG>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 <CODE>mod_alias</CODE>
- directive <CODE>ScriptAlias</CODE> which internally forces all files inside
- the mapped directory to have a MIME type of
- ``<CODE>application/x-httpd-cgi</CODE>''.
-<P>
-<LI>'<STRONG><CODE>nosubreq|NS</CODE></STRONG>' (used only if <STRONG>n</STRONG>o internal <STRONG>s</STRONG>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 <CODE>mod_include</CODE> tries to find out
- information about possible directory default files (<CODE>index.xxx</CODE>).
- 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>nocase|NC</CODE></STRONG>' (<STRONG>n</STRONG>o <STRONG>c</STRONG>ase)<BR>
- This makes the <EM>Pattern</EM> case-insensitive, <EM>i.e.</EM>, there is
- no difference between 'A-Z' and 'a-z' when <EM>Pattern</EM> is matched
- against the current URL.
-<P>
-<LI>'<STRONG><CODE>qsappend|QSA</CODE></STRONG>' (<STRONG>q</STRONG>uery <STRONG>s</STRONG>tring
- <STRONG>a</STRONG>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>noescape|NE</CODE></STRONG>' (<STRONG>n</STRONG>o URI <STRONG>e</STRONG>scaping of output)<BR>
- This flag keeps mod_rewrite from applying the usual URI escaping
- rules to the result of a rewrite. Ordinarily, special characters
- (such as '%', '$', ';', and so on) will be escaped into their
- hexcode equivalents ('%25', '%24', and '%3B', respectively); this
- flag prevents this from being done. This allows percent symbols
- to appear in the output, as in
- <pre>
+ for making backreferences where the <strong>N</strong>th group can
+ be used on the RHS of a RewriteRule with <code>$</code><strong>N</strong>)
+
+<strong>Anchors:</strong>
+ <strong><code>^</code></strong> Start of line anchor
+ <strong><code>$</code></strong> End of line anchor
+
+<strong>Escaping:</strong>
+ <strong><code>\</code></strong>char escape that particular char
+ (for instance to specify the chars "<code>.[]()</code>" <em>etc.</em>)
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <p>For more information about regular expressions either have
+ a look at your local regex(3) manpage or its
+ <code>src/regex/regex.3</code> copy in the Apache 1.3
+ distribution. If you are interested in more detailed
+ information about regular expressions and their variants
+ (POSIX regex, Perl regex, <em>etc.</em>) have a look at the
+ following dedicated book on this topic:</p>
+
+ <blockquote>
+ <em>Mastering Regular Expressions</em><br />
+ Jeffrey E.F. Friedl<br />
+ Nutshell Handbook Series<br />
+ O'Reilly &amp; Associates, Inc. 1997<br />
+ ISBN 1-56592-257-3<br />
+ </blockquote>
+
+ <p>Additionally in mod_rewrite the NOT character
+ ('<code>!</code>') is a possible pattern prefix. This gives
+ you the ability to negate a pattern; to say, for instance:
+ ``<em>if the current URL does <strong>NOT</strong> match this
+ pattern</em>''. This can be used for exceptional cases, where
+ it is easier to match the negative pattern, or as a last
+ default rule.</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Notice:</strong> 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 <code>$N</code> in the substitution
+ string!</td>
+ </tr>
+ </table>
+
+ <p><a id="rhs" 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</p>
+
+ <ol>
+ <li>back-references <code>$N</code> to the RewriteRule
+ pattern</li>
+
+ <li>back-references <code>%N</code> to the last matched
+ RewriteCond pattern</li>
+
+ <li>server-variables as in rule condition test-strings
+ (<code>%{VARNAME}</code>)</li>
+
+ <li><a href="#mapfunc">mapping-function</a> calls
+ (<code>${mapname:key|default}</code>)</li>
+ </ol>
+ Back-references are <code>$</code><strong>N</strong>
+ (<strong>N</strong>=0..9) identifiers which will be replaced
+ by the contents of the <strong>N</strong>th group of the
+ matched <em>Pattern</em>. The server-variables are the same
+ as for the <em>TestString</em> of a <code>RewriteCond</code>
+ directive. The mapping-functions come from the
+ <code>RewriteMap</code> 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 <strong>completely
+ replaced</strong> by the <em>Substitution</em> and the
+ rewriting process goes on until there are no more rules
+ unless explicitly terminated by a
+ <code><strong>L</strong></code> flag - see below.</p>
+
+ <p>There is a special substitution string named
+ '<code>-</code>' which means: <strong>NO
+ substitution</strong>! Sounds silly? No, it is useful to
+ provide rewriting rules which <strong>only</strong> match
+ some URLs but do no substitution, <em>e.g.</em>, in
+ conjunction with the <strong>C</strong> (chain) flag to be
+ able to have more than one pattern to be applied before a
+ substitution occurs.</p>
+
+ <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="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Note</strong>: There is a special feature:
+ When you prefix a substitution field with
+ <code>http://</code><em>thishost</em>[<em>:thisport</em>]
+ then <strong>mod_rewrite</strong> 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.</td>
+ </tr>
+ </table>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Remember:</strong> An unconditional external
+ redirect to your own server will not work with the prefix
+ <code>http://thishost</code> because of this feature. To
+ achieve such a self-redirect, you have to use the
+ <strong>R</strong>-flag (see below).</td>
+ </tr>
+ </table>
+
+ <p>Additionally you can set special flags for
+ <em>Substitution</em> by appending</p>
+
+ <blockquote>
+ <strong><code>[</code><em>flags</em><code>]</code></strong>
+ </blockquote>
+ as the third argument to the <code>RewriteRule</code>
+ directive. <em>Flags</em> is a comma-separated list of the
+ following flags:
+
+ <ul>
+ <li>
+ '<strong><code>redirect|R</code>
+ [=<em>code</em>]</strong>' (force <a id="redirect"
+ name="redirect"><strong>r</strong>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
+ <em>code</em> 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:
+ <code>temp</code> (default), <code>permanent</code>,
+ <code>seeother</code>. Use it for rules which should
+ canonicalize the URL and give it back to the client,
+ <em>e.g.</em>, translate ``<code>/~</code>'' into
+ ``<code>/u/</code>'' or always append a slash to
+ <code>/u/</code><em>user</em>, etc.<br />
+
+
+ <p><strong>Note:</strong> 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>, rewriting
+ continues. 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>
+
+ <li>'<strong><code>forbidden|F</code></strong>' (force URL
+ to be <strong>f</strong>orbidden)<br />
+ This forces the current URL to be forbidden,
+ <em>i.e.</em>, it immediately sends back a HTTP response of
+ 403 (FORBIDDEN). Use this flag in conjunction with
+ appropriate RewriteConds to conditionally block some
+ URLs.</li>
+
+ <li>'<strong><code>gone|G</code></strong>' (force URL to be
+ <strong>g</strong>one)<br />
+ This forces the current URL to be gone, <em>i.e.</em>, it
+ immediately sends back a HTTP response of 410 (GONE). Use
+ this flag to mark pages which no longer exist as gone.</li>
+
+ <li>
+ '<strong><code>proxy|P</code></strong>' (force
+ <strong>p</strong>roxy)<br />
+ This flag forces the substitution part to be internally
+ forced as a proxy request and immediately (<em>i.e.</em>,
+ rewriting rule processing stops here) put through the <a
+ href="mod_proxy.html">proxy module</a>. You have to make
+ sure that the substitution string is a valid URI
+ (<em>e.g.</em>, typically starting with
+ <code>http://</code><em>hostname</em>) 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 <a
+ href="mod_proxy.html#proxypass">ProxyPass</a> directive,
+ to map some remote stuff into the namespace of the local
+ server.
+
+ <p>Notice: To use this functionality make sure you have
+ the proxy module compiled into your Apache server
+ program. If you don't know please check whether
+ <code>mod_proxy.c</code> is part of the ``<code>httpd
+ -l</code>'' output. If yes, this functionality is
+ available to mod_rewrite. If not, then you first have to
+ rebuild the ``<code>httpd</code>'' program with mod_proxy
+ enabled.</p>
+ </li>
+
+ <li>'<strong><code>last|L</code></strong>'
+ (<strong>l</strong>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. For example, use it to rewrite the root-path URL
+ ('<code>/</code>') to a real one, <em>e.g.</em>,
+ '<code>/e/www/</code>'.</li>
+
+ <li>'<strong><code>next|N</code></strong>'
+ (<strong>n</strong>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, <em>i.e.</em>,
+ to immediately go to the top of the loop.<br />
+ <strong>But be careful not to create an infinite
+ loop!</strong></li>
+
+ <li>'<strong><code>chain|C</code></strong>'
+ (<strong>c</strong>hained with next rule)<br />
+ This flag chains the current rule with the next rule
+ (which itself can be chained with the following rule,
+ <em>etc.</em>). This has the following effect: if a rule
+ matches, then processing continues as usual, <em>i.e.</em>,
+ the flag has no effect. If the rule does
+ <strong>not</strong> match, then all following chained
+ rules are skipped. For instance, use it to remove the
+ ``<code>.www</code>'' part inside a per-directory rule set
+ when you let an external redirect happen (where the
+ ``<code>.www</code>'' part should not to occur!).</li>
+
+ <li>
+ '<strong><code>type|T</code></strong>=<em>MIME-type</em>'
+ (force MIME <strong>t</strong>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 <code>mod_alias</code> directive
+ <code>ScriptAlias</code> which internally forces all files
+ inside the mapped directory to have a MIME type of
+ ``<code>application/x-httpd-cgi</code>''.</li>
+
+ <li>
+ '<strong><code>nosubreq|NS</code></strong>' (used only if
+ <strong>n</strong>o internal
+ <strong>s</strong>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 <code>mod_include</code> tries to find out
+ information about possible directory default files
+ (<code>index.xxx</code>). 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>
+
+ <li>'<strong><code>nocase|NC</code></strong>'
+ (<strong>n</strong>o <strong>c</strong>ase)<br />
+ This makes the <em>Pattern</em> case-insensitive,
+ <em>i.e.</em>, there is no difference between 'A-Z' and
+ 'a-z' when <em>Pattern</em> is matched against the current
+ URL.</li>
+
+ <li>'<strong><code>qsappend|QSA</code></strong>'
+ (<strong>q</strong>uery <strong>s</strong>tring
+ <strong>a</strong>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.</li>
+
+ <li>
+ '<strong><code>noescape|NE</code></strong>'
+ (<strong>n</strong>o URI <strong>e</strong>scaping of
+ output)<br />
+ This flag keeps mod_rewrite from applying the usual URI
+ escaping rules to the result of a rewrite. Ordinarily,
+ special characters (such as '%', '$', ';', and so on)
+ will be escaped into their hexcode equivalents ('%25',
+ '%24', and '%3B', respectively); this flag prevents this
+ from being done. This allows percent symbols to appear in
+ the output, as in
+<pre>
RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
- </pre>
- which would turn '<code>/foo/zed</code>' into a safe request
- for '<code>/bar?arg=P1=zed</code>'.
- <TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
- <TR><TD>
- <STRONG>Notice:</STRONG> The <code>noescape</code> flag is only available
- with Apache 1.3.20 and later versions.
- </TD></TR>
- </TABLE>
-<P>
-<LI>'<STRONG><CODE>passthrough|PT</CODE></STRONG>' (<STRONG>p</STRONG>ass <STRONG>t</STRONG>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 <CODE>RewriteRule</CODE> directives by
- <CODE>Alias</CODE>, <CODE>ScriptAlias</CODE>, <CODE>Redirect</CODE>, <EM>etc.</EM> directives
- from other URI-to-filename translators. A trivial example to show the
- semantics:
- If you want to rewrite <CODE>/abc</CODE> to <CODE>/def</CODE> via the rewriting
- engine of <CODE>mod_rewrite</CODE> and then <CODE>/def</CODE> to <CODE>/ghi</CODE>
- with <CODE>mod_alias</CODE>:
- <PRE>
+
+</pre>
+ which would turn '<code>/foo/zed</code>' into a safe
+ request for '<code>/bar?arg=P1=zed</code>'.
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Notice:</strong> The
+ <code>noescape</code> flag is only available with
+ Apache 1.3.20 and later versions.</td>
+ </tr>
+ </table>
+ </li>
+
+ <li>
+ '<strong><code>passthrough|PT</code></strong>'
+ (<strong>p</strong>ass <strong>t</strong>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
+ <code>RewriteRule</code> directives by
+ <code>Alias</code>, <code>ScriptAlias</code>,
+ <code>Redirect</code>, <em>etc.</em> directives from
+ other URI-to-filename translators. A trivial example to
+ show the semantics: If you want to rewrite
+ <code>/abc</code> to <code>/def</code> via the rewriting
+ engine of <code>mod_rewrite</code> and then
+ <code>/def</code> to <code>/ghi</code> with
+ <code>mod_alias</code>:
+<pre>
RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi
- </PRE>
- If you omit the <CODE>PT</CODE> flag then <CODE>mod_rewrite</CODE>
- will do its job fine, <EM>i.e.</EM>, it rewrites <CODE>uri=/abc/...</CODE> to
- <CODE>filename=/def/...</CODE> as a full API-compliant URI-to-filename
- translator should do. Then <CODE>mod_alias</CODE> comes and tries to do a
- URI-to-filename transition which will not work.
- <P>
- Note: <STRONG>You have to use this flag if you want to intermix directives
- of different modules which contain URL-to-filename translators</STRONG>. The
- typical example is the use of <CODE>mod_alias</CODE> and
- <CODE>mod_rewrite</CODE>..
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<font size=-1>
- <STRONG>Note - For Apache hackers:</STRONG><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 a hook in Apache version 2.0.
-</FONT>
-</TD></TR>
-</TABLE>
-<P>
-<LI>'<STRONG><CODE>skip|S</CODE></STRONG>=<EM>num</EM>' (<STRONG>s</STRONG>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
- <CODE>skip=N</CODE> where N is the number of rules in the else-clause.
- (This is <STRONG>not</STRONG> the same as the 'chain|C' flag!)
-<P>
-<LI>'<STRONG><CODE>env|E=</CODE></STRONG><EM>VAR</EM>:<EM>VAL</EM>' (set <STRONG>e</STRONG>nvironment variable)<BR>
- This forces an environment variable named <EM>VAR</EM> to be set to the
- value <EM>VAL</EM>, where <EM>VAL</EM> can contain regexp backreferences
- <CODE>$N</CODE> and <CODE>%N</CODE> which will be expanded. You can use this flag
- more than once to set more than one variable. The variables can be later
- dereferenced in many situations, but usually from
- within XSSI (via <CODE>&lt;!--#echo var="VAR"--&gt;</CODE>) or CGI (<EM>e.g.</EM>
- <CODE>$ENV{'VAR'}</CODE>). Additionally you can dereference it in a
- following RewriteCond pattern via <CODE>%{ENV:VAR}</CODE>. Use this to strip
- but remember information from URLs.
-</UL>
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Note:</STRONG> Never forget that <EM>Pattern</EM> is applied to a complete URL
-in per-server configuration files. <STRONG>But in per-directory configuration
-files, the per-directory prefix (which always is the same for a specific
-directory!) is automatically <EM>removed</EM> for the pattern matching and
-automatically <EM>added</EM> after the substitution has been done.</STRONG> 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
-``<CODE>http://</CODE>'' then the directory prefix will <STRONG>not</STRONG> be added and an
-external redirect or proxy throughput (if flag <STRONG>P</STRONG> is used!) is forced!
-</TD></TR>
-</TABLE>
-
-<P>
-<TABLE WIDTH="70%" BORDER=0 BGCOLOR="#E0E0F0" CELLSPACING=0 CELLPADDING=10>
-<TR><TD>
-<STRONG>Note:</STRONG> To enable the rewriting engine for per-directory configuration files
-you need to set ``<CODE>RewriteEngine On</CODE>'' in these files <STRONG>and</STRONG>
-``<CODE>Options FollowSymLinks</CODE>'' must be enabled. If your administrator has
-disabled override of <CODE>FollowSymLinks</CODE> 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>
-<STRONG>Inside per-server configuration (<CODE>httpd.conf</CODE>)<BR>
-for request ``<CODE>GET /somepath/pathinfo</CODE>'':</STRONG><BR>
-
-<P>
-<TABLE BGCOLOR="#F0F0F0" CELLSPACING=0 CELLPADDING=5>
-<TR>
-<TD>
-<PRE>
-<STRONG>Given Rule</STRONG> <STRONG>Resulting Substitution</STRONG>
+
+</pre>
+ If you omit the <code>PT</code> flag then
+ <code>mod_rewrite</code> will do its job fine,
+ <em>i.e.</em>, it rewrites <code>uri=/abc/...</code> to
+ <code>filename=/def/...</code> as a full API-compliant
+ URI-to-filename translator should do. Then
+ <code>mod_alias</code> comes and tries to do a
+ URI-to-filename transition which will not work.
+
+ <p>Note: <strong>You have to use this flag if you want to
+ intermix directives of different modules which contain
+ URL-to-filename translators</strong>. The typical example
+ is the use of <code>mod_alias</code> and
+ <code>mod_rewrite</code>..</p>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><font size="-1"><strong>Note - For Apache
+ hackers:</strong><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 a hook in
+ Apache version 2.0.</font> </td>
+ </tr>
+ </table>
+ </li>
+
+ <li>'<strong><code>skip|S</code></strong>=<em>num</em>'
+ (<strong>s</strong>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
+ <code>skip=N</code> where N is the number of rules in the
+ else-clause. (This is <strong>not</strong> the same as the
+ 'chain|C' flag!)</li>
+
+ <li>
+ '<strong><code>env|E=</code></strong><em>VAR</em>:<em>VAL</em>'
+ (set <strong>e</strong>nvironment variable)<br />
+ This forces an environment variable named <em>VAR</em> to
+ be set to the value <em>VAL</em>, where <em>VAL</em> can
+ contain regexp backreferences <code>$N</code> and
+ <code>%N</code> which will be expanded. You can use this
+ flag more than once to set more than one variable. The
+ variables can be later dereferenced in many situations, but
+ usually from within XSSI (via <code>&lt;!--#echo
+ var="VAR"--&gt;</code>) or CGI (<em>e.g.</em>
+ <code>$ENV{'VAR'}</code>). Additionally you can dereference
+ it in a following RewriteCond pattern via
+ <code>%{ENV:VAR}</code>. Use this to strip but remember
+ information from URLs.</li>
+ </ul>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td>
+ <strong>Note:</strong> Never forget that
+ <em>Pattern</em> is applied to a complete URL in
+ per-server configuration files. <strong>But in
+ per-directory configuration files, the per-directory
+ prefix (which always is the same for a specific
+ directory!) is automatically <em>removed</em> for the
+ pattern matching and automatically <em>added</em> after
+ the substitution has been done.</strong> 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 ``<code>http://</code>'' then the directory
+ prefix will <strong>not</strong> be added and an
+ external redirect or proxy throughput (if flag
+ <strong>P</strong> is used!) is forced!</p>
+ </td>
+ </tr>
+ </table>
+
+ <table width="70%" border="0" bgcolor="#E0E0F0"
+ cellspacing="0" cellpadding="10">
+ <tr>
+ <td><strong>Note:</strong> To enable the rewriting engine
+ for per-directory configuration files you need to set
+ ``<code>RewriteEngine On</code>'' in these files
+ <strong>and</strong> ``<code>Options
+ FollowSymLinks</code>'' must be enabled. If your
+ administrator has disabled override of
+ <code>FollowSymLinks</code> 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>
+
+ <p><strong>Inside per-server configuration
+ (<code>httpd.conf</code>)<br />
+ for request ``<code>GET
+ /somepath/pathinfo</code>'':</strong><br />
+ </p>
+
+ <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td>
+<pre>
+<strong>Given Rule</strong> <strong>Resulting Substitution</strong>
---------------------------------------------- ----------------------------------
^/somepath(.*) otherpath$1 not supported, because invalid!
@@ -1821,23 +1955,25 @@ for request ``<CODE>GET /somepath/pathinfo</CODE>'':</STRONG><BR>
^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
via internal proxy
-</PRE>
-</TD>
-</TR>
-</TABLE>
-
-<P>
-<STRONG>Inside per-directory configuration for <CODE>/somepath</CODE><BR>
-(<EM>i.e.</EM>, file <CODE>.htaccess</CODE> in dir <CODE>/physical/path/to/somepath</CODE> containing
-<CODE>RewriteBase /somepath</CODE>)<BR> for
-request ``<CODE>GET /somepath/localpath/pathinfo</CODE>'':</STRONG><BR>
-
-<P>
-<TABLE BGCOLOR="#F0F0F0" CELLSPACING=0 CELLPADDING=5>
-<TR>
-<TD>
-<PRE>
-<STRONG>Given Rule</STRONG> <STRONG>Resulting Substitution</STRONG>
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <p><strong>Inside per-directory configuration for
+ <code>/somepath</code><br />
+ (<em>i.e.</em>, file <code>.htaccess</code> in dir
+ <code>/physical/path/to/somepath</code> containing
+ <code>RewriteBase /somepath</code>)<br />
+ for request ``<code>GET
+ /somepath/localpath/pathinfo</code>'':</strong><br />
+ </p>
+
+ <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td>
+<pre>
+<strong>Given Rule</strong> <strong>Resulting Substitution</strong>
---------------------------------------------- ----------------------------------
^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo
@@ -1869,90 +2005,86 @@ request ``<CODE>GET /somepath/localpath/pathinfo</CODE>'':</STRONG><BR>
^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
via internal proxy
-</PRE>
-</TD>
-</TR>
-</TABLE>
-
-<P>
-<STRONG>Example:</STRONG>
-<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>/path/to/file/map.txt</CODE>. Then we only have to add the
-following lines to the Apache server configuration file:
-
-<BLOCKQUOTE>
-<PRE>
+</pre>
+ </td>
+ </tr>
+ </table>
+
+ <p><strong>Example:</strong></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>/path/to/file/map.txt</code>. Then we only have to
+ add the following lines to the Apache server configuration
+ file:</p>
+
+ <blockquote>
+<pre>
RewriteLog /path/to/file/rewrite.log
RewriteMap real-to-user txt:/path/to/file/map.txt
RewriteRule ^/([^/]+)/~([^/]+)/(.*)$ /u/${real-to-user:$2|nobody}/$3.$1
-</PRE>
-</BLOCKQUOTE>
-
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<CENTER>
-<H1><A NAME="Miscelleneous">Miscellaneous</A></H1>
-</CENTER>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<H2><A NAME="EnvVar">Environment Variables</A></H2>
-
-This module keeps track of two additional (non-standard) CGI/SSI environment
-variables named <CODE>SCRIPT_URL</CODE> and <CODE>SCRIPT_URI</CODE>. These contain
-the <EM>logical</EM> Web-view to the current resource, while the standard CGI/SSI
-variables <CODE>SCRIPT_NAME</CODE> and <CODE>SCRIPT_FILENAME</CODE> contain the
-<EM>physical</EM> System-view.
-
-<P>
-Notice: These variables hold the URI/URL <EM>as they were initially
-requested</EM>, <EM>i.e.</EM>, <EM>before</EM> any rewriting. This is
-important because the rewriting process is primarily used to rewrite logical
-URLs to physical pathnames.
-
-<P>
-<STRONG>Example:</STRONG>
-
-<BLOCKQUOTE>
-<PRE>
+</pre>
+ </blockquote>
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <center>
+ <h1><a id="Miscelleneous"
+ name="Miscelleneous">Miscellaneous</a></h1>
+ </center>
+ <hr noshade="noshade" size="1" />
+
+ <h2><a id="EnvVar" name="EnvVar">Environment
+ Variables</a></h2>
+ This module keeps track of two additional (non-standard)
+ CGI/SSI environment variables named <code>SCRIPT_URL</code>
+ and <code>SCRIPT_URI</code>. These contain the
+ <em>logical</em> Web-view to the current resource, while the
+ standard CGI/SSI variables <code>SCRIPT_NAME</code> and
+ <code>SCRIPT_FILENAME</code> contain the <em>physical</em>
+ System-view.
+
+ <p>Notice: These variables hold the URI/URL <em>as they were
+ initially requested</em>, <em>i.e.</em>, <em>before</em> any
+ rewriting. This is important because the rewriting process is
+ primarily used to rewrite logical URLs to physical
+ pathnames.</p>
+
+ <p><strong>Example:</strong></p>
+
+ <blockquote>
+<pre>
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
SCRIPT_FILENAME=/u/rse/.www/index.html
SCRIPT_URL=/u/rse/
SCRIPT_URI=http://en1.engelschall.com/u/rse/
-</PRE>
-</BLOCKQUOTE>
-
-<P>
-<HR NOSHADE SIZE=1>
-
-<H2><A NAME="Solutions">Practical Solutions</A></H2>
-
-We also have an <a href="../misc/rewriteguide.html">URL Rewriting
-Guide</a> available, which provides a collection of practical solutions
-for URL-based problems. There you can find real-life rulesets and
-additional information about mod_rewrite.
+</pre>
+ </blockquote>
+ <hr noshade="noshade" size="1" />
+
+ <h2><a id="Solutions" name="Solutions">Practical
+ Solutions</a></h2>
+ We also have an <a href="../misc/rewriteguide.html">URL
+ Rewriting Guide</a> available, which provides a collection of
+ practical solutions for URL-based problems. There you can
+ find real-life rulesets and additional information about
+ mod_rewrite. <!--#include virtual="footer.html" -->
+ </blockquote>
+ <!-- page indentation -->
+ <!--/%hypertext -->
+ </body>
+</html>
-<!--#include virtual="footer.html" -->
-</BLOCKQUOTE><!-- page indentation -->
-</BODY>
-</HTML>
-<!--/%hypertext -->
diff --git a/docs/manual/mod/mod_setenvif.html b/docs/manual/mod/mod_setenvif.html
index 6190d7f968..6716965bf7 100644
--- a/docs/manual/mod/mod_setenvif.html
+++ b/docs/manual/mod/mod_setenvif.html
@@ -1,352 +1,276 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_setenvif</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_setenvif</H1>
- <P>
- This module provides the ability to set environment variables based
- upon attributes of the request.
- </P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_setenvif.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> setenvif_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3 and later.
-</P>
-
- <H2>Summary</H2>
- <P>
- The <SAMP>mod_setenvif</SAMP> module allows you to set environment
- variables according to whether different aspects of the request
- match regular expressions you specify. These environment variables
- can be used by other parts of the server to make decisions about
- actions to be taken.
- </P>
- <P>The directives are considered in the order they appear in the
- configuration files. So more complex sequences can be used, such
- as this example, which sets <CODE>netscape</CODE> if the browser
- is mozilla but not MSIE.
- <BLOCKQUOTE><PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_setenvif</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_setenvif</h1>
+
+ <p>This module provides the ability to set environment
+ variables based upon attributes of the request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_setenvif.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ setenvif_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>The <samp>mod_setenvif</samp> module allows you to set
+ environment variables according to whether different aspects of
+ the request match regular expressions you specify. These
+ environment variables can be used by other parts of the server
+ to make decisions about actions to be taken.</p>
+
+ <p>The directives are considered in the order they appear in
+ the configuration files. So more complex sequences can be used,
+ such as this example, which sets <code>netscape</code> if the
+ browser is mozilla but not MSIE.</p>
+
+ <blockquote>
+<pre>
BrowserMatch ^Mozilla netscape
BrowserMatch MSIE !netscape
- </PRE></BLOCKQUOTE>
- </P>
-
- <p>For additional information, we provide a document on
- <a href="../env.html">Environment Variables in Apache</a>.</p>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#BrowserMatch">BrowserMatch</A>
- </LI>
- <LI><A HREF="#BrowserMatchNoCase">BrowserMatchNoCase</A>
- </LI>
- <LI><A HREF="#SetEnvIf">SetEnvIf</A>
- </LI>
- <LI><A HREF="#SetEnvIfNoCase">SetEnvIfNoCase</A>
- </LI>
- </UL>
-
- <HR> <!-- the HR is part of the directive description -->
- <H2><A NAME="BrowserMatch">BrowserMatch directive</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> BrowserMatch <EM>regex
- env-variable</em>[=<em>value</em>] [<em>env-variable</em>[=<em>value</em>]] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <i>none</i>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> FileInfo
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Base
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_setenvif
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Apache 1.2 and above (in Apache 1.2
- this directive was found in the now-obsolete mod_browser module)
- </P>
- <P>
- The BrowserMatch directive defines environment variables based on the
- <SAMP>User-Agent</SAMP> HTTP request header field. The first argument
- should be a POSIX.2 extended regular expression (similar to an
- <SAMP>egrep</SAMP>-style regex). The rest of the arguments give the
- names of variables to set, and optionally values to which they should
- be set. These take the form of
- </P>
- <OL>
- <LI><SAMP><EM>varname</EM></SAMP>, or
- </LI>
- <LI><SAMP>!<EM>varname</EM></SAMP>, or
- </LI>
- <LI><SAMP><EM>varname</EM>=<EM>value</EM></SAMP>
- </LI>
- </OL>
- <P>
- In the first form, the value will be set to &quot;1&quot;. The second
- will remove the given variable if already defined, and the third will
- set the variable to the value given by <SAMP><EM>value</EM></SAMP>. If a
- <SAMP>User-Agent</SAMP> string matches more than one entry, they will
- be merged. Entries are processed in the order in which they appear,
- and later entries can override earlier ones.
- </P>
- <P>
- For example:
- </P>
- <PRE>
+
+</pre>
+ </blockquote>
+ <br />
+ <br />
+
+
+ <p>For additional information, we provide a document on <a
+ href="../env.html">Environment Variables in Apache</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#BrowserMatch">BrowserMatch</a></li>
+
+ <li><a href="#BrowserMatchNoCase">BrowserMatchNoCase</a></li>
+
+ <li><a href="#SetEnvIf">SetEnvIf</a></li>
+
+ <li><a href="#SetEnvIfNoCase">SetEnvIfNoCase</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="BrowserMatch" name="BrowserMatch">BrowserMatch
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> BrowserMatch <em>regex
+ env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <i>none</i><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and
+ above (in Apache 1.2 this directive was found in the
+ now-obsolete mod_browser module)</p>
+
+ <p>The BrowserMatch directive defines environment variables
+ based on the <samp>User-Agent</samp> HTTP request header field.
+ The first argument should be a POSIX.2 extended regular
+ expression (similar to an <samp>egrep</samp>-style regex). The
+ rest of the arguments give the names of variables to set, and
+ optionally values to which they should be set. These take the
+ form of</p>
+
+ <ol>
+ <li><samp><em>varname</em></samp>, or</li>
+
+ <li><samp>!<em>varname</em></samp>, or</li>
+
+ <li><samp><em>varname</em>=<em>value</em></samp></li>
+ </ol>
+
+ <p>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
+ <samp><em>value</em></samp>. If a <samp>User-Agent</samp>
+ string matches more than one entry, they will be merged.
+ Entries are processed in the order in which they appear, and
+ later entries can override earlier ones.</p>
+
+ <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>
- Note that the regular expression string is
- <STRONG>case-sensitive</STRONG>. For case-INsensitive matching, see
- the
- <A
- HREF="#BrowserMatchNoCase"
- ><SAMP>BrowserMatchNoCase</SAMP></A>
- directive.
- </P>
- <P>
- The <SAMP>BrowserMatch</SAMP> and <SAMP>BrowserMatchNoCase</SAMP>
- directives are special cases of the
- <A
- HREF="#SetEnvIf"
- ><SAMP>SetEnvIf</SAMP></A>
- and
- <A
- HREF="#SetEnvIfNoCase"
- ><SAMP>SetEnvIfNoCase</SAMP></A>
- directives. The following two lines have the same effect:
- </P>
- <PRE>
+
+</pre>
+
+ <p>Note that the regular expression string is
+ <strong>case-sensitive</strong>. For case-INsensitive matching,
+ see the <a
+ href="#BrowserMatchNoCase"><samp>BrowserMatchNoCase</samp></a>
+ directive.</p>
+
+ <p>The <samp>BrowserMatch</samp> and
+ <samp>BrowserMatchNoCase</samp> directives are special cases of
+ the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a
+ href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a>
+ directives. The following two lines have the same effect:</p>
+<pre>
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
- </PRE>
-
- <HR> <!-- the HR is part of the directive description -->
- <H2>
- <A NAME="BrowserMatchNoCase">BrowserMatchNoCase directive
- </A>
- </H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> BrowserMatchNoCase <EM>regex
- env-variable</em>[=<em>value</em>] [<em>env-variable</em>[=<em>value</em>]] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>none</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> FileInfo
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Base
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_setenvif
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Apache 1.2 and above (in Apache 1.2
- this directive was found in the now-obsolete mod_browser module)
- </P>
- <P>
- The <SAMP>BrowserMatchNoCase</SAMP> directive is semantically identical to
- the
- <A
- HREF="#BrowserMatch"
- ><SAMP>BrowserMatch</SAMP></A>
- directive. However, it provides for case-insensitive matching. For
- example:
- </P>
- <PRE>
+
+</pre>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="BrowserMatchNoCase"
+ name="BrowserMatchNoCase">BrowserMatchNoCase directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> BrowserMatchNoCase
+ <em>regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 and
+ above (in Apache 1.2 this directive was found in the
+ now-obsolete mod_browser module)</p>
+
+ <p>The <samp>BrowserMatchNoCase</samp> directive is
+ semantically identical to the <a
+ href="#BrowserMatch"><samp>BrowserMatch</samp></a> directive.
+ However, it provides for case-insensitive matching. For
+ example:</p>
+<pre>
BrowserMatchNoCase mac platform=macintosh
BrowserMatchNoCase win platform=windows
- </PRE>
- <P>
- The <SAMP>BrowserMatch</SAMP> and <SAMP>BrowserMatchNoCase</SAMP>
- directives are special cases of the
- <A
- HREF="#SetEnvIf"
- ><SAMP>SetEnvIf</SAMP></A>
- and
- <A
- HREF="#SetEnvIfNoCase"
- ><SAMP>SetEnvIfNoCase</SAMP></A>
- directives. The following two lines have the same effect:
- </P>
- <PRE>
+
+</pre>
+
+ <p>The <samp>BrowserMatch</samp> and
+ <samp>BrowserMatchNoCase</samp> directives are special cases of
+ the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> and <a
+ href="#SetEnvIfNoCase"><samp>SetEnvIfNoCase</samp></a>
+ directives. The following two lines have the same effect:</p>
+<pre>
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
- </PRE>
-
- <HR> <!-- the HR is part of the directive description -->
- <H2>
- <A NAME="SetEnvIf">SetEnvIf directive
- </A>
- </H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> SetEnvIf <EM> attribute regex
- env-variable</em>[=<em>value</em>] [<em>env-variable</em>[=<em>value</em>]] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>none</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> FileInfo
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Base
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_setenvif
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Apache 1.3 and above; the
- Request_Protocol keyword and environment-variable matching are only
- available with 1.3.7 and later
- </P>
- <P>
- The <SAMP>SetEnvIf</SAMP> directive defines environment variables
- based on attributes of the request. These attributes can be the
- values of various HTTP request header fields (see
- <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>
- for more information about these), or of other aspects of the request,
- including the following:
- </P>
- <UL>
- <LI><SAMP>Remote_Host</SAMP> - the hostname (if available) of the
- client making the request
- </LI>
- <LI><SAMP>Remote_Addr</SAMP> - the IP address of the client making
- the request
- </LI>
- <LI><SAMP>Remote_User</SAMP> - the authenticated username (if
- available)
- </LI>
- <LI><SAMP>Request_Method</SAMP> - the name of the method being used
- (<SAMP>GET</SAMP>, <SAMP>POST</SAMP>, <EM>et cetera</EM>)
- </LI>
- <LI><SAMP>Request_Protocol</SAMP> - the name and version of the protocol
- with which the request was made (<EM>e.g.</EM>, "HTTP/0.9", "HTTP/1.1",
- <EM>etc.</EM>)
- </LI>
- <LI><SAMP>Request_URI</SAMP> - the portion of the URL following the
- scheme and host portion
- </LI>
- </UL>
- <P>
- Some of the more commonly used request header field names include
- <SAMP>Host</SAMP>, <SAMP>User-Agent</SAMP>, and <SAMP>Referer</SAMP>.
- </P>
- <P>
- If the <EM>attribute</EM> name doesn't match any of the special keywords,
- nor any of the request's header field names, it is tested as the name
- of an environment variable in the list of those associated with the request.
- This allows <CODE>SetEnvIf</CODE> directives to test against the result
- of prior matches.
- </P>
- <BLOCKQUOTE>
- <STRONG>Only those environment variables defined by earlier
- <CODE>SetEnvIf[NoCase]</CODE> directives are available for testing in
- this manner. 'Earlier' means that they were defined at a broader scope
- (such as server-wide) or previously in the current directive's
- scope.</STRONG>
- </BLOCKQUOTE>
- <P>
- <EM>attribute</EM> may be a regular expression when used to match a request header.
- If <EM>attribute</EM> is a regular expression and it doesn't match any of the
- request's header names, then <EM>attribute</EM> is not tested against the request's
- environment variable list.
- </P>
- <P>
- Example:
- </P>
- <PRE>
+
+</pre>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="SetEnvIf" name="SetEnvIf">SetEnvIf
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> SetEnvIf <em>attribute
+ regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
+ above; the Request_Protocol keyword and environment-variable
+ matching are only available with 1.3.7 and later</p>
+
+ <p>The <samp>SetEnvIf</samp> directive defines environment
+ variables based on attributes of the request. These attributes
+ can be the values of various HTTP request header fields (see <a
+ href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>
+ for more information about these), or of other aspects of the
+ request, including the following:</p>
+
+ <ul>
+ <li><samp>Remote_Host</samp> - the hostname (if available) of
+ the client making the request</li>
+
+ <li><samp>Remote_Addr</samp> - the IP address of the client
+ making the request</li>
+
+ <li><samp>Remote_User</samp> - the authenticated username (if
+ available)</li>
+
+ <li><samp>Request_Method</samp> - the name of the method
+ being used (<samp>GET</samp>, <samp>POST</samp>, <em>et
+ cetera</em>)</li>
+
+ <li><samp>Request_Protocol</samp> - the name and version of
+ the protocol with which the request was made (<em>e.g.</em>,
+ "HTTP/0.9", "HTTP/1.1", <em>etc.</em>)</li>
+
+ <li><samp>Request_URI</samp> - the portion of the URL
+ following the scheme and host portion</li>
+ </ul>
+
+ <p>Some of the more commonly used request header field names
+ include <samp>Host</samp>, <samp>User-Agent</samp>, and
+ <samp>Referer</samp>.</p>
+
+ <p>If the <em>attribute</em> name doesn't match any of the
+ special keywords, nor any of the request's header field names,
+ it is tested as the name of an environment variable in the list
+ of those associated with the request. This allows
+ <code>SetEnvIf</code> directives to test against the result of
+ prior matches.</p>
+
+ <blockquote>
+ <strong>Only those environment variables defined by earlier
+ <code>SetEnvIf[NoCase]</code> directives are available for
+ testing in this manner. 'Earlier' means that they were
+ defined at a broader scope (such as server-wide) or
+ previously in the current directive's scope.</strong>
+ </blockquote>
+
+ <p><em>attribute</em> may be a regular expression when used to
+ match a request header. If <em>attribute</em> is a regular
+ expression and it doesn't match any of the request's header
+ names, then <em>attribute</em> is not tested against the
+ request's environment variable list.</p>
+
+ <p>Example:</p>
+<pre>
SetEnvIf Request_URI "\.gif$" object_is_image=gif
SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
@@ -356,79 +280,59 @@ REL="Help"
SetEnvIf object_is_image xbm XBIT_PROCESSING=1
:
SetEnvIf ^TS* ^[a-z].* HAVE_TS
- </PRE>
- <P>
- The first three will set the environment variable <SAMP>object_is_image</SAMP> if the
- request was for an image file, and the fourth sets
- <SAMP>intra_site_referral</SAMP> if the referring page was somewhere
- on the <SAMP>www.mydomain.com</SAMP> Web site.
- </P>
- <P>
- The last example will set environment variable <SAMP>HAVE_TS</SAMP> if the request
- contains any headers that begin with "TS" whose values begins with any character
- in the set [a-z].
- </P>
- <HR> <!-- the HR is part of the directive description -->
- <H2>
- <A NAME="SetEnvIfNoCase">SetEnvIfNoCase directive
- </A>
- </H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> SetEnvIfNoCase <EM> attribute regex
- env-variable</em>[=<em>value</em>] [<em>env-variable</em>[=<em>value</em>]] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>none</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host, directory,
- .htaccess
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> FileInfo
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Base
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_setenvif
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Apache 1.3 and above
- </P>
- <P>
- The <SAMP>SetEnvIfNoCase</SAMP> is semantically identical to the
- <A
- HREF="#SetEnvIf"
- ><SAMP>SetEnvIf</SAMP></A>
- directive, and differs only in that the regular expression matching is
- performed in a case-insensitive manner. For example:
- </P>
- <PRE>
+
+</pre>
+
+ <p>The first three will set the environment variable
+ <samp>object_is_image</samp> if the request was for an image
+ file, and the fourth sets <samp>intra_site_referral</samp> if
+ the referring page was somewhere on the
+ <samp>www.mydomain.com</samp> Web site.</p>
+
+ <p>The last example will set environment variable
+ <samp>HAVE_TS</samp> if the request contains any headers that
+ begin with "TS" whose values begins with any character in the
+ set [a-z].</p>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="SetEnvIfNoCase" name="SetEnvIfNoCase">SetEnvIfNoCase
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> SetEnvIfNoCase
+ <em>attribute regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
+ above</p>
+
+ <p>The <samp>SetEnvIfNoCase</samp> is semantically identical to
+ the <a href="#SetEnvIf"><samp>SetEnvIf</samp></a> directive,
+ and differs only in that the regular expression matching is
+ performed in a case-insensitive manner. For example:</p>
+<pre>
SetEnvIfNoCase Host Apache\.Org site=apache
- </PRE>
- <P>
- This will cause the <SAMP>site</SAMP> environment variable to be set to
- &quot;<SAMP>apache</SAMP>&quot; if the HTTP request header field
- <SAMP>Host:</SAMP> was included and contained <SAMP>Apache.Org</SAMP>,
- <SAMP>apache.org</SAMP>, or any other combination.
- </P>
-
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+
+</pre>
+
+ <p>This will cause the <samp>site</samp> environment variable
+ to be set to "<samp>apache</samp>" if the HTTP request header
+ field <samp>Host:</samp> was included and contained
+ <samp>Apache.Org</samp>, <samp>apache.org</samp>, or any other
+ combination.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_so.html b/docs/manual/mod/mod_so.html
index aef279aeec..98c97b9f5e 100644
--- a/docs/manual/mod/mod_so.html
+++ b/docs/manual/mod/mod_so.html
@@ -1,192 +1,185 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_so</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_so</H1>
-
-<p>This module provides for loading of executable code and modules into the
-server at start-up or restart time.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base (Windows); Optional (Unix)
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_so.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> so_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3 and later.
-</P>
-
-
-<H2>Summary</H2>
-
-<P>On selected operating systems this module can be used to load modules
-into Apache at runtime via the <A HREF="../dso.html">Dynamic Shared
-Object</A> (DSO) mechanism, rather than requiring a recompilation.
-
-<P>
-On Unix, the loaded code typically comes from shared object files
-(usually with <SAMP>.so</SAMP> extension), on Windows this may either
-the <SAMP>.so</SAMP> or <SAMP>.dll</SAMP> extension. This module is
-only available in Apache 1.3 and up.
-
-<p>In previous releases, the functionality of this module was provided
-for Unix by mod_dld, and for Windows by mod_dll. On Windows, mod_dll
-was used in beta release 1.3b1 through 1.3b5. mod_so combines these
-two modules into a single module for all operating systems.
-
-<P><STRONG> Warning: Apache 1.3 modules cannot be directly used with
- Apache 2.0 - the module must be modified to dynamically load or
- compile into Apache 2.0</STRONG>.</P>
-
-<H2>Directives</H2>
-<UL>
-<LI><A HREF="#loadfile">LoadFile</A>
-<LI><A HREF="#loadmodule">LoadModule</A>
-</UL>
-
-<H2><A NAME="creating">Creating Loadable Modules for Windows</A></H2>
-
-<P><STRONG>Note: the module name format changed for Windows with Apache
- 1.3.15 and 2.0 - the modules are now named as mod_foo.so</STRONG>.
- While mod_so still loads modules with ApacheModuleFoo.dll names, the
- new naming convention is preferred; if you are converting your loadable
- module for 2.0, please fix the name to this 2.0 convention.</P>
-
-<P>The Apache module API is unchanged between the Unix and Windows
- versions. Many modules will run on Windows with no or little change
- from Unix, although others rely on aspects of the Unix architecture
- which are not present in Windows, and will not work.</P>
-
-<P>When a module does work, it can be added to the server in one of two
- ways. As with Unix, it can be compiled into the server. Because Apache
- for Windows does not have the <CODE>Configure</CODE> program of Apache
- for Unix, the module's source file must be added to the ApacheCore
- project file, and its symbols must be added to the
- <CODE>os\win32\modules.c</CODE> file.</P>
-
-<P>The second way is to compile the module as a DLL, a shared library
- that can be loaded into the server at runtime, using the
- <CODE><A HREF="#loadmodule">LoadModule</A></CODE>
- directive. These module DLLs can be distributed and run on any Apache
- for Windows installation, without recompilation of the server.</P>
-
-<P>To create a module DLL, a small change is necessary to the module's
- source file: The module record must be exported from the DLL (which
- will be created later; see below). To do this, add the <CODE
- >AP_MODULE_DECLARE_DATA</CODE> (defined in the Apache header files)
- to your module's module record definition. For example, if your module
- has:</P>
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_so</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_so</h1>
+
+ <p>This module provides for loading of executable code and
+ modules into the server at start-up or restart time.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base (Windows);
+ Optional (Unix)<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_so.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ so_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>On selected operating systems this module can be used to
+ load modules into Apache at runtime via the <a
+ href="../dso.html">Dynamic Shared Object</a> (DSO) mechanism,
+ rather than requiring a recompilation.</p>
+
+ <p>On Unix, the loaded code typically comes from shared object
+ files (usually with <samp>.so</samp> extension), on Windows
+ this may either the <samp>.so</samp> or <samp>.dll</samp>
+ extension. This module is only available in Apache 1.3 and
+ up.</p>
+
+ <p>In previous releases, the functionality of this module was
+ provided for Unix by mod_dld, and for Windows by mod_dll. On
+ Windows, mod_dll was used in beta release 1.3b1 through 1.3b5.
+ mod_so combines these two modules into a single module for all
+ operating systems.</p>
+
+ <p><strong>Warning: Apache 1.3 modules cannot be directly used
+ with Apache 2.0 - the module must be modified to dynamically
+ load or compile into Apache 2.0</strong>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#loadfile">LoadFile</a></li>
+
+ <li><a href="#loadmodule">LoadModule</a></li>
+ </ul>
+
+ <h2><a id="creating" name="creating">Creating Loadable Modules
+ for Windows</a></h2>
+
+ <p><strong>Note: the module name format changed for Windows
+ with Apache 1.3.15 and 2.0 - the modules are now named as
+ mod_foo.so</strong>. While mod_so still loads modules with
+ ApacheModuleFoo.dll names, the new naming convention is
+ preferred; if you are converting your loadable module for 2.0,
+ please fix the name to this 2.0 convention.</p>
+
+ <p>The Apache module API is unchanged between the Unix and
+ Windows versions. Many modules will run on Windows with no or
+ little change from Unix, although others rely on aspects of the
+ Unix architecture which are not present in Windows, and will
+ not work.</p>
+
+ <p>When a module does work, it can be added to the server in
+ one of two ways. As with Unix, it can be compiled into the
+ server. Because Apache for Windows does not have the
+ <code>Configure</code> program of Apache for Unix, the module's
+ source file must be added to the ApacheCore project file, and
+ its symbols must be added to the
+ <code>os\win32\modules.c</code> file.</p>
+
+ <p>The second way is to compile the module as a DLL, a shared
+ library that can be loaded into the server at runtime, using
+ the <code><a href="#loadmodule">LoadModule</a></code>
+ directive. These module DLLs can be distributed and run on any
+ Apache for Windows installation, without recompilation of the
+ server.</p>
+
+ <p>To create a module DLL, a small change is necessary to the
+ module's source file: The module record must be exported from
+ the DLL (which will be created later; see below). To do this,
+ add the <code>AP_MODULE_DECLARE_DATA</code> (defined in the
+ Apache header files) to your module's module record definition.
+ For example, if your module has:</p>
+<pre>
module foo_module;
-</PRE>
-<P>Replace the above with:</P>
-<PRE>
+</pre>
+
+ <p>Replace the above with:</p>
+<pre>
module AP_MODULE_DECLARE_DATA foo_module;
-</PRE>
-<P>Note that this will only be activated on Windows, so the module can
- continue to be used, unchanged, with Unix if needed. Also, if you are
- familiar with <CODE>.DEF</CODE> files, you can export the module
- record with that method instead.</P>
-
-<P>Now, create a DLL containing your module. You will need to link this
- against the libhttpd.lib export library that is created when the
- libhttpd.dll shared library is compiled. You may also have to change
- the compiler settings to ensure that the Apache header files are
- correctly located. You can find this library in your server root's
- modules directory. It is best to grab an existing module .dsp file
- from the tree to assure the build environment is configured correctly,
- or alternately compare the compiler and link options to your .dsp.</P>
-
-<P>This should create a DLL version of your module. Now simply place it
- in the <SAMP>modules</SAMP> directory of your server root, and use
- the <CODE><A HREF="#loadmodule">LoadModule</A></CODE> directive to
- load it.</P>
-
-<HR>
-
-<H2><A NAME="loadfile">LoadFile</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt LoadFile} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> LoadFile <EM>filename</em>
- [<em>filename</em>] ...<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_so<P>
-
-The LoadFile directive links in the named object files or libraries
-when the server is started or restarted; this is used to load
-additional code which may be required for some module to
-work. <EM>Filename</EM> is either an absolute path or relative to <A
-HREF="core.html#serverroot">ServerRoot</A>.<P><HR>
-
-<H2><A NAME="loadmodule">LoadModule</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt LoadModule} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> LoadModule <EM>module filename</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_so<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, and is
-listed as the <a href="module-dict.html#ModuleIdentifier">Module
-Identifier</a> in the module documentation. Example:
-<BLOCKQUOTE><CODE>
-LoadModule status_module modules/mod_status.so
-</CODE></BLOCKQUOTE>
-
-<P>loads the named module from the modules subdirectory of the
- ServerRoot.<P>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+
+ <p>Note that this will only be activated on Windows, so the
+ module can continue to be used, unchanged, with Unix if needed.
+ Also, if you are familiar with <code>.DEF</code> files, you can
+ export the module record with that method instead.</p>
+
+ <p>Now, create a DLL containing your module. You will need to
+ link this against the libhttpd.lib export library that is
+ created when the libhttpd.dll shared library is compiled. You
+ may also have to change the compiler settings to ensure that
+ the Apache header files are correctly located. You can find
+ this library in your server root's modules directory. It is
+ best to grab an existing module .dsp file from the tree to
+ assure the build environment is configured correctly, or
+ alternately compare the compiler and link options to your
+ .dsp.</p>
+
+ <p>This should create a DLL version of your module. Now simply
+ place it in the <samp>modules</samp> directory of your server
+ root, and use the <code><a
+ href="#loadmodule">LoadModule</a></code> directive to load
+ it.</p>
+ <hr />
+
+ <h2><a id="loadfile" name="loadfile">LoadFile</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt LoadFile} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <p>The LoadFile directive links in the named object files or
+ libraries when the server is started or restarted; this is used
+ to load additional code which may be required for some module
+ to work. <em>Filename</em> is either an absolute path or
+ relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
+ <hr />
+
+ <h2><a id="loadmodule" name="loadmodule">LoadModule</a>
+ directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt LoadModule} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadModule <em>module
+ filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <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, and is listed as the <a
+ href="module-dict.html#ModuleIdentifier">Module Identifier</a>
+ in the module documentation. Example:</p>
+
+ <blockquote>
+ <code>LoadModule status_module modules/mod_status.so</code>
+ </blockquote>
+
+ <p>loads the named module from the modules subdirectory of the
+ ServerRoot.</p>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_speling.html b/docs/manual/mod/mod_speling.html
index cc294cdcee..f194f68926 100644
--- a/docs/manual/mod/mod_speling.html
+++ b/docs/manual/mod/mod_speling.html
@@ -1,137 +1,126 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_speling</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_speling</H1>
- <P>
- This module attempts to correct misspellings of URLs that users
- might have entered, by ignoring capitalization and by allowing up to
- one misspelling.</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_speling.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> speling_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3 and later. Available as an External module in Apache 1.1 and later.
-</P>
-
-
- <H2>Summary</H2>
- <P>
- Requests to documents sometimes cannot be served by the core apache
- server because the request was misspelled or miscapitalized. This
- module addresses this problem by trying to find a matching document,
- even after all other modules gave up. It does its work by comparing
- each document name in the requested directory against the requested
- document name <STRONG>without regard to case</STRONG>, and allowing
- <STRONG>up to one misspelling</STRONG> (character insertion / omission
- / transposition or wrong character). A list is built with all document
- names which were matched using this strategy.
- </P>
- <P>
- If, after scanning the directory,
- <UL>
- <LI>no matching document was found, Apache will proceed as usual
- and return a "document not found" error.
- <LI>only one document is found that "almost" matches the request,
- then it is returned in the form of a redirection response.
- <LI>more than one document with a close match was found, then
- the list of the matches is returned to the client, and the client
- can select the correct candidate.
- </UL>
- </P>
-
- <H2>Directives</H2>
-
- <UL>
- <LI><A HREF="#checkspelling">CheckSpelling</A>
- </UL>
-
- <HR> <!-- the HR is part of the directive description -->
- <H2><A NAME="checkspelling">CheckSpelling</A> directive</H2>
- <!--%plaintext &lt;?INDEX {\tt CheckSpelling} directive&gt; -->
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CheckSpelling on|off<BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <CODE>CheckSpelling Off</CODE><BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host,
- directory, .htaccess<BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> Options
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Base<BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_speling<BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> CheckSpelling was available as a
- separately
- available module for Apache 1.1, but was limited to miscapitalizations.
- As of Apache 1.3, it is part of the Apache distribution. Prior to
- Apache 1.3.2, the <SAMP>CheckSpelling</SAMP> directive was only available
- in the "server" and "virtual host" contexts.
- <P>
- This directive enables or disables the spelling module. When enabled,
- keep in mind that
- </P>
- <UL>
- <LI>the directory scan which is necessary for the spelling
- correction will have an impact on the server's performance
- when many spelling corrections have to be performed at the same time.
- </LI>
- <LI>the document trees should not contain sensitive files which could
- be matched inadvertently by a spelling "correction".
- </LI>
- <LI>the module is unable to correct misspelled user names
- (as in <CODE>http://my.host/~apahce/</CODE>), just file names or
- directory names.
- </LI>
- <LI>spelling corrections apply strictly to existing files, so a request for
- the <SAMP>&lt;Location /status&gt;</SAMP> may get incorrectly treated
- as the negotiated file "<SAMP>/stats.html</SAMP>".
- </LI>
- </UL>
-
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_speling</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_speling</h1>
+
+ <p>This module attempts to correct misspellings of URLs that
+ users might have entered, by ignoring capitalization and by
+ allowing up to one misspelling.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_speling.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ speling_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later. Available as an External module in Apache
+ 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>Requests to documents sometimes cannot be served by the core
+ apache server because the request was misspelled or
+ miscapitalized. This module addresses this problem by trying to
+ find a matching document, even after all other modules gave up.
+ It does its work by comparing each document name in the
+ requested directory against the requested document name
+ <strong>without regard to case</strong>, and allowing
+ <strong>up to one misspelling</strong> (character insertion /
+ omission / transposition or wrong character). A list is built
+ with all document names which were matched using this
+ strategy.</p>
+
+ <p>If, after scanning the directory,</p>
+
+ <ul>
+ <li>no matching document was found, Apache will proceed as
+ usual and return a "document not found" error.</li>
+
+ <li>only one document is found that "almost" matches the
+ request, then it is returned in the form of a redirection
+ response.</li>
+
+ <li>more than one document with a close match was found, then
+ the list of the matches is returned to the client, and the
+ client can select the correct candidate.</li>
+ </ul>
+ <br />
+ <br />
+
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#checkspelling">CheckSpelling</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="checkspelling"
+ name="checkspelling">CheckSpelling</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt CheckSpelling} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CheckSpelling
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>CheckSpelling
+ Off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Options <br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_speling<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> CheckSpelling
+ was available as a separately available module for Apache 1.1,
+ but was limited to miscapitalizations. As of Apache 1.3, it is
+ part of the Apache distribution. Prior to Apache 1.3.2, the
+ <samp>CheckSpelling</samp> directive was only available in the
+ "server" and "virtual host" contexts.
+
+ <p>This directive enables or disables the spelling module. When
+ enabled, keep in mind that</p>
+
+ <ul>
+ <li>the directory scan which is necessary for the spelling
+ correction will have an impact on the server's performance
+ when many spelling corrections have to be performed at the
+ same time.</li>
+
+ <li>the document trees should not contain sensitive files
+ which could be matched inadvertently by a spelling
+ "correction".</li>
+
+ <li>the module is unable to correct misspelled user names (as
+ in <code>http://my.host/~apahce/</code>), just file names or
+ directory names.</li>
+
+ <li>spelling corrections apply strictly to existing files, so
+ a request for the <samp>&lt;Location /status&gt;</samp> may
+ get incorrectly treated as the negotiated file
+ "<samp>/stats.html</samp>".</li>
+ </ul>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_status.html b/docs/manual/mod/mod_status.html
index 8ea9d83dbe..8510691fae 100644
--- a/docs/manual/mod/mod_status.html
+++ b/docs/manual/mod/mod_status.html
@@ -1,96 +1,90 @@
-<!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"
->
-
-<!--#include virtual="header.html" -->
-
-<blockquote><strong>Warning:</strong>
-This document has not been updated to take into account changes
-made in the 2.0 version of the Apache HTTP Server. Some of the
-information may still be relevant, but please use it
-with care.
-</blockquote>
-
-<H1 ALIGN="CENTER">Module mod_status</H1>
-
-<p>This module provides information on server activity and
-performance.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_status.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> status_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.1 and later.
-</P>
-
-
-<H2>Summary</H2>
-
-<p>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>
-
-<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>Directives</h2>
-
-<ul>
-<li><a href="#extendedstatus">ExtendedStatus</a></li>
-</ul>
-
-
-<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>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <blockquote>
+ <strong>Warning:</strong> This document has not been updated
+ to take into account changes made in the 2.0 version of the
+ Apache HTTP Server. Some of the information may still be
+ relevant, but please use it with care.
+ </blockquote>
+
+ <h1 align="CENTER">Module mod_status</h1>
+
+ <p>This module provides information on server activity and
+ performance.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_status.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ status_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>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>
+
+ <p>The details given are:</p>
+
+ <ul>
+ <li>The number of children serving requests</li>
+
+ <li>The number of idle children</li>
+
+ <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>
+
+ <li>A total number of accesses and byte count served (*)</li>
+
+ <li>The time the server was started/restarted and the time it
+ has been running for</li>
+
+ <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>
+
+ <li>The current percentage CPU used by each child and in
+ total by Apache (*)</li>
+
+ <li>The current hosts and requests being processed (*)</li>
+ </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>Directives</h2>
+
+ <ul>
+ <li><a href="#extendedstatus">ExtendedStatus</a></li>
+ </ul>
+
+ <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
@@ -98,76 +92,66 @@ domain add this code to your <CODE>access.conf</CODE> configuration file
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>.
-
-<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>
-
-<H2><A NAME="extendedstatus">ExtendedStatus directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ExtendedStatus} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ExtendedStatus On|Off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>ExtendedStatus Off</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config <BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_status<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> ExtendedStatus is only available
- in Apache 1.3.2 and later.
-
-<P>
-This directive controls whether the server keeps track of extended
-status information for each request. This is only useful if the status module
-is enabled on the server.
-</P>
-<P>
-This setting applies to the entire server, and cannot be enabled or
-disabled on a virtualhost-by-virtualhost basis.
-</P>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</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>
+
+ <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.</p>
+
+ <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>.
+
+ <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 />
+
+ <h2><a id="extendedstatus" name="extendedstatus">ExtendedStatus
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ExtendedStatus} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ExtendedStatus
+ On|Off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>ExtendedStatus
+ Off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config <br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_status<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> ExtendedStatus
+ is only available in Apache 1.3.2 and later.
+
+ <p>This directive controls whether the server keeps track of
+ extended status information for each request. This is only
+ useful if the status module is enabled on the server.</p>
+
+ <p>This setting applies to the entire server, and cannot be
+ enabled or disabled on a virtualhost-by-virtualhost basis.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_suexec.html b/docs/manual/mod/mod_suexec.html
index 0910999f1a..862a9a6fec 100644
--- a/docs/manual/mod/mod_suexec.html
+++ b/docs/manual/mod/mod_suexec.html
@@ -1,95 +1,75 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_suexec</TITLE>
-</HEAD>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_suexec</H1>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
-<P>
-This module provides support for <A HREF="../suexec.html">
-running CGI scripts as a specified User and Group</A>.
-</P>
+ <title>Apache module mod_suexec</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_suexec.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> suexec_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 2.0 and later.
-</P>
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
-<h2>Summary</h2>
+ <h1 align="CENTER">Module mod_suexec</h1>
-<p>This module allows CGI scripts to run as a specified user and Group.</p>
+ <p>This module provides support for <a
+ href="../suexec.html">running CGI scripts as a specified User
+ and Group</a>.</p>
-<H2>Directives</H2>
-<UL>
- <LI><A HREF="#suexecusergroup">SuexecUserGroup</A>
-</UL>
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_suexec.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ suexec_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 2.0 and later.</p>
-<H2><A NAME="suexecusergroup">SuexecUserGroup directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> SuexecUserGroup <EM>User Group</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_suexec<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> SuexecUserGroup is only available in 2.0 and later.</P>
-<P>
-The <CODE>SuexecUserGroup</CODE> directive allows you to specify a user and
-group for CGI programs to run as. Non-CGI requests are still processes
-with the user specified in the User directive. This directive replaces
-using the User and Group directives inside of VirtualHosts.
-</P>
-<HR>
+ <h2>Summary</h2>
-<H3 ALIGN="CENTER">
- Apache HTTP Server Version 2.0
-</H3>
+ <p>This module allows CGI scripts to run as a specified user
+ and Group.</p>
-<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
-<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#suexecusergroup">SuexecUserGroup</a></li>
+ </ul>
+
+ <h2><a id="suexecusergroup"
+ name="suexecusergroup">SuexecUserGroup directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> SuexecUserGroup
+ <em>User Group</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_suexec<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> SuexecUserGroup
+ is only available in 2.0 and later.</p>
+
+ <p>The <code>SuexecUserGroup</code> directive allows you to
+ specify a user and group for CGI programs to run as. Non-CGI
+ requests are still processes with the user specified in the
+ User directive. This directive replaces using the User and
+ Group directives inside of VirtualHosts.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 2.0</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+ </body>
+</html>
-</BODY>
-</HTML>
diff --git a/docs/manual/mod/mod_unique_id.html b/docs/manual/mod/mod_unique_id.html
index 812f26a675..edc9611193 100644
--- a/docs/manual/mod/mod_unique_id.html
+++ b/docs/manual/mod/mod_unique_id.html
@@ -1,205 +1,204 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_unique_id</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_unique_id</H1>
-
-<p>This module provides an environment variable with a unique identifier
-for each request.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_unique_id.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> unique_id_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3 and later.
-</P>
-
-<h2>Summary</h2>
-
-<p>This module provides a magic token for each request which is guaranteed
-to be unique across "all" requests under very specific conditions.
-The unique identifier is even unique across multiple machines in a
-properly configured cluster of machines. The environment variable
-<CODE>UNIQUE_ID</CODE> is set to the identifier for each request.
-Unique identifiers are useful for various reasons which are beyond the
-scope of this document.</p>
-
-<h2>Directives</h2>
-
-<p>This module has no directives.</p>
-
-
-<H2>Theory</H2>
-
-<P>
-First a brief recap of how the Apache server works on Unix machines.
-This feature currently isn't supported on Windows NT. On Unix machines,
-Apache creates several children, the children process requests one at
-a time. Each child can serve multiple requests in its lifetime. For the
-purpose of this discussion, the children don't share any data
-with each other. We'll refer to the children as httpd processes.
-
-<P>
-Your website has one or more machines under your administrative control,
-together we'll call them a cluster of machines. Each machine can
-possibly run multiple instances of Apache. All of these collectively
-are considered "the universe", and with certain assumptions we'll
-show that in this universe we can generate unique identifiers for each
-request, without extensive communication between machines in the cluster.
-
-<P>
-The machines in your cluster should satisfy these requirements.
-(Even if you have only one machine you should synchronize its clock
-with NTP.)
-
-<UL>
-<LI>The machines' times are synchronized via NTP or other network time
- protocol.
-
-<LI>The machines' hostnames all differ, such that the module can do a
- hostname lookup on the hostname and receive a different IP address
- for each machine in the cluster.
-</UL>
-
-<P>
-As far as operating system assumptions go, we assume that pids (process
-ids) fit in 32-bits. If the operating system uses more than 32-bits
-for a pid, the fix is trivial but must be performed in the code.
-
-<P>
-Given those assumptions, at a single point in time we can identify
-any httpd process on any machine in the cluster from all other httpd
-processes. The machine's IP address and the pid of the httpd process
-are sufficient to do this. So in order to generate unique identifiers
-for requests we need only distinguish between different points in time.
-
-<P>
-To distinguish time we will use a Unix timestamp (seconds since January
-1, 1970 UTC), and a 16-bit counter. The timestamp has only one second
-granularity, so the counter is used to represent up to 65536 values
-during a single second. The quadruple <EM>( ip_addr, pid, time_stamp,
-counter )</EM> is sufficient to enumerate 65536 requests per second per
-httpd process. There are issues however with pid reuse over
-time, and the counter is used to alleviate this issue.
-
-<P>
-When an httpd child is created, the counter is initialized with (
-current microseconds divided by 10 ) modulo 65536 (this formula was
-chosen to eliminate some variance problems with the low order bits of
-the microsecond timers on some systems). When a unique identifier is
-generated, the time stamp used is the time the request arrived at the
-web server. The counter is incremented every time an identifier is
-generated (and allowed to roll over).
-
-<P>
-The kernel generates a pid for each process as it forks the process, and
-pids are allowed to roll over (they're 16-bits on many Unixes, but newer
-systems have expanded to 32-bits). So over time the same pid will be
-reused. However unless it is reused within the same second, it does not
-destroy the uniqueness of our quadruple. That is, we assume the system
-does not spawn 65536 processes in a one second interval (it may even be
-32768 processes on some Unixes, but even this isn't likely to happen).
-
-<P>
-Suppose that time repeats itself for some reason. That is, suppose that
-the system's clock is screwed up and it revisits a past time (or it is
-too far forward, is reset correctly, and then revisits the future time).
-In this case we can easily show that we can get pid and time stamp reuse.
-The choice of initializer for the counter is intended to help defeat this.
-Note that we really want a random number to initialize the counter,
-but there aren't any readily available numbers on most systems (<EM>i.e.</EM>, you
-can't use rand() because you need to seed the generator, and can't seed
-it with the time because time, at least at one second resolution, has
-repeated itself). This is not a perfect defense.
-
-<P>
-How good a defense is it? Suppose that one of your machines serves
-at most 500 requests per second (which is a very reasonable upper bound
-at this writing, because systems generally do more than just shovel out
-static files). To do that it will require a number of children which
-depends on how many concurrent clients you have. But we'll be pessimistic
-and suppose that a single child is able to serve 500 requests per second.
-There are 1000 possible starting counter values such that two sequences
-of 500 requests overlap. So there is a 1.5% chance that if time (at one
-second resolution) repeats itself this child will repeat a counter value,
-and uniqueness will be broken. This was a very pessimistic example,
-and with real world values it's even less likely to occur. If your
-system is such that it's still likely to occur, then perhaps you should
-make the counter 32 bits (by editing the code).
-
-<P>
-You may be concerned about the clock being "set back" during summer
-daylight savings. However this isn't an issue because the times used here
-are UTC, which "always" go forward. Note that x86 based Unixes may need
-proper configuration for this to be true -- they should be configured to
-assume that the motherboard clock is on UTC and compensate appropriately.
-But even still, if you're running NTP then your UTC time will be correct
-very shortly after reboot.
-
-<P>
-The <CODE>UNIQUE_ID</CODE> environment variable is constructed by
-encoding the 112-bit (32-bit IP address, 32 bit pid, 32 bit time stamp,
-16 bit counter) quadruple using the alphabet <CODE>[A-Za-z0-9@-]</CODE>
-in a manner similar to MIME base64 encoding, producing 19 characters.
-The MIME base64 alphabet is actually <CODE>[A-Za-z0-9+/]</CODE> however
-<CODE>+</CODE> and <CODE>/</CODE> need to be specially encoded in URLs,
-which makes them less desirable. All values are encoded in network
-byte ordering so that the encoding is comparable across architectures of
-different byte ordering. The actual ordering of the encoding is: time
-stamp, IP address, pid, counter. This ordering has a purpose, but it
-should be emphasized that applications should not dissect the encoding.
-Applications should treat the entire encoded <CODE>UNIQUE_ID</CODE> as an
-opaque token, which can be compared against other <CODE>UNIQUE_ID</CODE>s
-for equality only.
-
-<P>
-The ordering was chosen such that it's possible to change the encoding
-in the future without worrying about collision with an existing database
-of <CODE>UNIQUE_ID</CODE>s. The new encodings should also keep the time
-stamp as the first element, and can otherwise use the same alphabet and
-bit length. Since the time stamps are essentially an increasing sequence,
-it's sufficient to have a <EM>flag second</EM> in which all machines in the
-cluster stop serving and request, and stop using the old encoding format.
-Afterwards they can resume requests and begin issuing the new encodings.
-
-<P>
-This we believe is a relatively portable solution to this problem. It can
-be extended to multithreaded systems like Windows NT, and can grow with
-future needs. The identifiers generated have essentially an infinite
-life-time because future identifiers can be made longer as required.
-Essentially no communication is required between machines in the cluster
-(only NTP synchronization is required, which is low overhead), and no
-communication between httpd processes is required (the communication is
-implicit in the pid value assigned by the kernel). In very specific
-situations the identifier can be shortened, but more information needs
-to be assumed (for example the 32-bit IP address is overkill for any
-site, but there is no portable shorter replacement for it).
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_unique_id</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_unique_id</h1>
+
+ <p>This module provides an environment variable with a unique
+ identifier for each request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_unique_id.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ unique_id_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides a magic token for each request which is
+ guaranteed to be unique across "all" requests under very
+ specific conditions. The unique identifier is even unique
+ across multiple machines in a properly configured cluster of
+ machines. The environment variable <code>UNIQUE_ID</code> is
+ set to the identifier for each request. Unique identifiers are
+ useful for various reasons which are beyond the scope of this
+ document.</p>
+
+ <h2>Directives</h2>
+
+ <p>This module has no directives.</p>
+
+ <h2>Theory</h2>
+
+ <p>First a brief recap of how the Apache server works on Unix
+ machines. This feature currently isn't supported on Windows NT.
+ On Unix machines, Apache creates several children, the children
+ process requests one at a time. Each child can serve multiple
+ requests in its lifetime. For the purpose of this discussion,
+ the children don't share any data with each other. We'll refer
+ to the children as httpd processes.</p>
+
+ <p>Your website has one or more machines under your
+ administrative control, together we'll call them a cluster of
+ machines. Each machine can possibly run multiple instances of
+ Apache. All of these collectively are considered "the
+ universe", and with certain assumptions we'll show that in this
+ universe we can generate unique identifiers for each request,
+ without extensive communication between machines in the
+ cluster.</p>
+
+ <p>The machines in your cluster should satisfy these
+ requirements. (Even if you have only one machine you should
+ synchronize its clock with NTP.)</p>
+
+ <ul>
+ <li>The machines' times are synchronized via NTP or other
+ network time protocol.</li>
+
+ <li>The machines' hostnames all differ, such that the module
+ can do a hostname lookup on the hostname and receive a
+ different IP address for each machine in the cluster.</li>
+ </ul>
+
+ <p>As far as operating system assumptions go, we assume that
+ pids (process ids) fit in 32-bits. If the operating system uses
+ more than 32-bits for a pid, the fix is trivial but must be
+ performed in the code.</p>
+
+ <p>Given those assumptions, at a single point in time we can
+ identify any httpd process on any machine in the cluster from
+ all other httpd processes. The machine's IP address and the pid
+ of the httpd process are sufficient to do this. So in order to
+ generate unique identifiers for requests we need only
+ distinguish between different points in time.</p>
+
+ <p>To distinguish time we will use a Unix timestamp (seconds
+ since January 1, 1970 UTC), and a 16-bit counter. The timestamp
+ has only one second granularity, so the counter is used to
+ represent up to 65536 values during a single second. The
+ quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is
+ sufficient to enumerate 65536 requests per second per httpd
+ process. There are issues however with pid reuse over time, and
+ the counter is used to alleviate this issue.</p>
+
+ <p>When an httpd child is created, the counter is initialized
+ with ( current microseconds divided by 10 ) modulo 65536 (this
+ formula was chosen to eliminate some variance problems with the
+ low order bits of the microsecond timers on some systems). When
+ a unique identifier is generated, the time stamp used is the
+ time the request arrived at the web server. The counter is
+ incremented every time an identifier is generated (and allowed
+ to roll over).</p>
+
+ <p>The kernel generates a pid for each process as it forks the
+ process, and pids are allowed to roll over (they're 16-bits on
+ many Unixes, but newer systems have expanded to 32-bits). So
+ over time the same pid will be reused. However unless it is
+ reused within the same second, it does not destroy the
+ uniqueness of our quadruple. That is, we assume the system does
+ not spawn 65536 processes in a one second interval (it may even
+ be 32768 processes on some Unixes, but even this isn't likely
+ to happen).</p>
+
+ <p>Suppose that time repeats itself for some reason. That is,
+ suppose that the system's clock is screwed up and it revisits a
+ past time (or it is too far forward, is reset correctly, and
+ then revisits the future time). In this case we can easily show
+ that we can get pid and time stamp reuse. The choice of
+ initializer for the counter is intended to help defeat this.
+ Note that we really want a random number to initialize the
+ counter, but there aren't any readily available numbers on most
+ systems (<em>i.e.</em>, you can't use rand() because you need
+ to seed the generator, and can't seed it with the time because
+ time, at least at one second resolution, has repeated itself).
+ This is not a perfect defense.</p>
+
+ <p>How good a defense is it? Suppose that one of your machines
+ serves at most 500 requests per second (which is a very
+ reasonable upper bound at this writing, because systems
+ generally do more than just shovel out static files). To do
+ that it will require a number of children which depends on how
+ many concurrent clients you have. But we'll be pessimistic and
+ suppose that a single child is able to serve 500 requests per
+ second. There are 1000 possible starting counter values such
+ that two sequences of 500 requests overlap. So there is a 1.5%
+ chance that if time (at one second resolution) repeats itself
+ this child will repeat a counter value, and uniqueness will be
+ broken. This was a very pessimistic example, and with real
+ world values it's even less likely to occur. If your system is
+ such that it's still likely to occur, then perhaps you should
+ make the counter 32 bits (by editing the code).</p>
+
+ <p>You may be concerned about the clock being "set back" during
+ summer daylight savings. However this isn't an issue because
+ the times used here are UTC, which "always" go forward. Note
+ that x86 based Unixes may need proper configuration for this to
+ be true -- they should be configured to assume that the
+ motherboard clock is on UTC and compensate appropriately. But
+ even still, if you're running NTP then your UTC time will be
+ correct very shortly after reboot.</p>
+
+ <p>The <code>UNIQUE_ID</code> environment variable is
+ constructed by encoding the 112-bit (32-bit IP address, 32 bit
+ pid, 32 bit time stamp, 16 bit counter) quadruple using the
+ alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
+ base64 encoding, producing 19 characters. The MIME base64
+ alphabet is actually <code>[A-Za-z0-9+/]</code> however
+ <code>+</code> and <code>/</code> need to be specially encoded
+ in URLs, which makes them less desirable. All values are
+ encoded in network byte ordering so that the encoding is
+ comparable across architectures of different byte ordering. The
+ actual ordering of the encoding is: time stamp, IP address,
+ pid, counter. This ordering has a purpose, but it should be
+ emphasized that applications should not dissect the encoding.
+ Applications should treat the entire encoded
+ <code>UNIQUE_ID</code> as an opaque token, which can be
+ compared against other <code>UNIQUE_ID</code>s for equality
+ only.</p>
+
+ <p>The ordering was chosen such that it's possible to change
+ the encoding in the future without worrying about collision
+ with an existing database of <code>UNIQUE_ID</code>s. The new
+ encodings should also keep the time stamp as the first element,
+ and can otherwise use the same alphabet and bit length. Since
+ the time stamps are essentially an increasing sequence, it's
+ sufficient to have a <em>flag second</em> in which all machines
+ in the cluster stop serving and request, and stop using the old
+ encoding format. Afterwards they can resume requests and begin
+ issuing the new encodings.</p>
+
+ <p>This we believe is a relatively portable solution to this
+ problem. It can be extended to multithreaded systems like
+ Windows NT, and can grow with future needs. The identifiers
+ generated have essentially an infinite life-time because future
+ identifiers can be made longer as required. Essentially no
+ communication is required between machines in the cluster (only
+ NTP synchronization is required, which is low overhead), and no
+ communication between httpd processes is required (the
+ communication is implicit in the pid value assigned by the
+ kernel). In very specific situations the identifier can be
+ shortened, but more information needs to be assumed (for
+ example the 32-bit IP address is overkill for any site, but
+ there is no portable shorter replacement for it).
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_userdir.html b/docs/manual/mod/mod_userdir.html
index 98894962c8..68f398d4f3 100644
--- a/docs/manual/mod/mod_userdir.html
+++ b/docs/manual/mod/mod_userdir.html
@@ -1,139 +1,122 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_userdir</H1>
-
-<p>This module provides for user-specific directories.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Base
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_userdir.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> userdir_module
-</P>
-
-<h2>Directives</h2>
-
-
-<UL>
-<LI><A HREF="#userdir">UserDir</A>
-</UL>
-<HR>
-
-<H2><A NAME="userdir">UserDir</A> directive</H2>
-<!--%plaintext &lt;?INDEX {\tt UserDir} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> UserDir <EM>directory-filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>UserDir public_html</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Base<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_userdir<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> All forms except the <CODE>UserDir
-public_html</CODE> form are only available in Apache 1.1 or above. Use
-of the <SAMP>enabled</SAMP> keyword, or <SAMP>disabled</SAMP> with a
-list of usernames, is only available in Apache 1.3 and 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-filename</EM> is one of the following:
-</P>
-<UL>
- <LI>The name of a directory or a pattern such as those shown below.
- </LI>
- <LI>The keyword <SAMP>disabled</SAMP>. This turns off <EM>all</EM>
- username-to-directory translations except those explicitly named with
- the <SAMP>enabled</SAMP> keyword (see below).
- </LI>
- <LI>The keyword <SAMP>disabled</SAMP> followed by a space-delimited
- list of usernames. Usernames that appear in such a list will
- <EM>never</EM> have directory translation performed, even if they
- appear in an <SAMP>enabled</SAMP> clause.
- </LI>
- <LI>The keyword <SAMP>enabled</SAMP> followed by a space-delimited list
- of usernames. These usernames will have directory translation
- performed even if a global disable is in effect, but not if they also
- appear in a <SAMP>disabled</SAMP> clause.
- </LI>
-</UL>
-<P>
-If neither the <SAMP>enabled</SAMP> nor the <SAMP>disabled</SAMP>
-keywords appear in the <SAMP>Userdir</SAMP> directive, the argument is
-treated as a filename pattern, and is used to turn the name into a
-directory specification. A request for
-<CODE>http://www.foo.com/~bob/one/two.html</CODE> will be translated to:
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_userdir</h1>
+
+ <p>This module provides for user-specific directories.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_userdir.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ userdir_module</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#userdir">UserDir</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="userdir" name="userdir">UserDir</a> directive</h2>
+ <!--%plaintext &lt;?INDEX {\tt UserDir} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> UserDir
+ <em>directory-filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>UserDir
+ public_html</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_userdir<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> All forms except
+ the <code>UserDir public_html</code> form are only available in
+ Apache 1.1 or above. Use of the <samp>enabled</samp> keyword,
+ or <samp>disabled</samp> with a list of usernames, is only
+ available in Apache 1.3 and 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-filename</em> is one of the
+ following:</p>
+
+ <ul>
+ <li>The name of a directory or a pattern such as those shown
+ below.</li>
+
+ <li>The keyword <samp>disabled</samp>. This turns off
+ <em>all</em> username-to-directory translations except those
+ explicitly named with the <samp>enabled</samp> keyword (see
+ below).</li>
+
+ <li>The keyword <samp>disabled</samp> followed by a
+ space-delimited list of usernames. Usernames that appear in
+ such a list will <em>never</em> have directory translation
+ performed, even if they appear in an <samp>enabled</samp>
+ clause.</li>
+
+ <li>The keyword <samp>enabled</samp> followed by a
+ space-delimited list of usernames. These usernames will have
+ directory translation performed even if a global disable is
+ in effect, but not if they also appear in a
+ <samp>disabled</samp> clause.</li>
+ </ul>
+
+ <p>If neither the <samp>enabled</samp> nor the
+ <samp>disabled</samp> keywords appear in the
+ <samp>Userdir</samp> directive, the argument is treated as a
+ filename pattern, and is used to turn the name into a directory
+ specification. A request for
+ <code>http://www.foo.com/~bob/one/two.html</code> will be
+ translated to:</p>
+<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>
+</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>
-<BLOCKQUOTE>
- <STRONG>
- Be careful when using this directive; for instance,
- <SAMP>&quot;UserDir&nbsp;./&quot;</SAMP> would map
- <SAMP>&quot;/~root&quot;</SAMP> to
- <SAMP>&quot;/&quot;</SAMP> - which is probably undesirable. If you are
- running Apache 1.3 or above, it is strongly recommended that your
- configuration include a
- &quot;<SAMP>UserDir&nbsp;disabled&nbsp;root</SAMP>&quot; declaration.
- 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>
-</BLOCKQUOTE>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+ <br />
+ <br />
+
+
+ <blockquote>
+ <strong>Be careful when using this directive; for instance,
+ <samp>"UserDir&nbsp;./"</samp> would map
+ <samp>"/~root"</samp> to <samp>"/"</samp> - which is probably
+ undesirable. If you are running Apache 1.3 or above, it is
+ strongly recommended that your configuration include a
+ "<samp>UserDir&nbsp;disabled&nbsp;root</samp>" declaration.
+ 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>
+ </blockquote>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
diff --git a/docs/manual/mod/mod_usertrack.html b/docs/manual/mod/mod_usertrack.html
index c8fe14e480..22d46b3cfe 100644
--- a/docs/manual/mod/mod_usertrack.html
+++ b/docs/manual/mod/mod_usertrack.html
@@ -1,90 +1,80 @@
-<!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"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_usertrack</H1>
-
-<p>This module uses cookies to provide for a <em>clickstream</em> log of user
-activity on a site.</p>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_usertrack.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> usertrack_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Known as mod_cookies prior to
-Apache 1.3.
-</P>
-
-<h2>Summary</h2>
-
-<p>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.</p>
-
-<H2>Directives</H2>
-
-<UL>
-<li><a href="#cookiedomain">CookieDomain</a></li>
-<LI><A HREF="#cookieexpires">CookieExpires</A>
-<LI><A HREF="#cookiename">CookieName</A>
-<li><a href="#cookiestyle">CookieStyle</a></li>
-<LI><A HREF="#cookietracking">CookieTracking</A>
-</UL>
-
-<H2>Logging</H2>
-
-<p>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 multiple log files. 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>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <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">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_usertrack</h1>
+
+ <p>This module uses cookies to provide for a
+ <em>clickstream</em> log of user activity on a site.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_usertrack.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ usertrack_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Known as
+ mod_cookies prior to Apache 1.3.</p>
-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>Summary</h2>
-<H2>2-digit or 4-digit dates for cookies?</H2>
+ <p>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.</p>
-(the following is from message
-&lt;022701bda43d$9d32bbb0$1201a8c0@christian.office.sane.com&gt; in
-the new-httpd archives)
+ <h2>Directives</h2>
-<P>
+ <ul>
+ <li><a href="#cookiedomain">CookieDomain</a></li>
-<PRE>
+ <li><a href="#cookieexpires">CookieExpires</a></li>
+
+ <li><a href="#cookiename">CookieName</a></li>
+
+ <li><a href="#cookiestyle">CookieStyle</a></li>
+
+ <li><a href="#cookietracking">CookieTracking</a></li>
+ </ul>
+
+ <h2>Logging</h2>
+
+ <p>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 multiple log files. The cookie itself is logged by
+ using the text <tt>%{cookie}n</tt> in the log file format. For
+ example:</p>
+<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>2-digit or 4-digit dates for cookies?</h2>
+ (the following is from message
+ &lt;022701bda43d$9d32bbb0$1201a8c0@christian.office.sane.com&gt;
+ in the new-httpd archives)
+<pre>
From: "Christian Allen" &lt;christian@sane.com&gt;
Subject: Re: Apache Y2K bug in mod_usertrack.c
Date: Tue, 30 Jun 1998 11:41:56 -0400
@@ -115,184 +105,139 @@ Summary: Mozilla 3.x and up understands two digit dates up until "37"
form, but also understands 4-digit years, which can probably reach up until
9999. Your best bet for sending a long-life cookie is to send it for some
time late in the year "37".
-</PRE>
-
-<hr>
-
-<h2><a name="cookiedomain">CookieDomain</a> directive</h2>
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><b>Syntax:</b></a> CookieDomain <i>domain</i><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><b>Context:</b></a> server config, virtual host, directory, .htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><b>Status:</b></a> optional<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><b>Module:</b></a> mod_usertrack
-
-<p>
-This directive controls the setting of the domain to which the
-tracking cookie applies. If not present, no domain is included
-in the cookie header field.
-</p>
-<p>
-The domain string <b>must</b> begin with a dot, and <b>must</b>
-include at least one embedded dot. That is, ".foo.com" is legal,
-but "foo.bar.com" and ".com" are not.
-</p>
-
-<HR>
-
-<H2><A NAME="cookieexpires">CookieExpires</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CookieExpires <EM>expiry-period</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A>
-<b>1.3.20 and earlier:</b> server config, virtual host;
-<b>1.3.21 and later:</b> server config, virtual host, directory, .htaccess<br>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> optional<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_usertrack<P>
-
-When used, this directive sets an expiry time on the cookie generated
-by the usertrack module. The <EM>expiry-period</EM> 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. If the expiry time is in any format other than one
-number indicating the number of seconds, it must be enclosed by
-double quotes.
-
-<P>If this directive is not used, cookies last only for the current
-browser session.</P>
-
-<HR>
-<H2><A NAME="cookiename">CookieName</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CookieName <EM>token</EM>
-<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <EM>Apache</EM>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
-.htaccess<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> optional<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_usertrack
-<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> Apache 1.3.7 and later
-<P>
-This directive allows you to change the name of the cookie this module
-uses for its tracking purposes. By default the cookie is named
-"<CODE>Apache</CODE>".
-</P>
-<P>
-You must specify a valid cookie name; results are unpredictable if
-you use a name containing unusual characters. Valid characters
-include A-Z, a-z, 0-9, "_", and "-".
-</P>
-
-<hr>
-
-<h2><a name="cookiestyle">CookieStyle</a> directive</h2>
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><b>Syntax:</b></a> CookieStyle <i>Netscape|Cookie|Cookie2|RFC2109|RFC2965</i><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><b>Context:</b></a> server config, virtual host, directory, .htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><b>Status:</b></a> optional<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><b>Module:</b></a> mod_usertrack
-
-<p>
-This directive controls the format of the cookie header field.
-The three formats allowed are:
-</p>
-<ul>
- <li><b>Netscape</b>, which is the original but now deprecated
- syntax. This is the default, and the syntax Apache has
- historically used.</li>
- <li><b>Cookie</b> or <b>RFC2109</b>, which is the syntax that
- superseded the Netscape syntax.</li>
- <li><b>Cookie2</b> or <b>RFC2965</b>, which is the most current
- cookie syntax.</li>
-</ul>
-
-<p>
-Not all clients can understand all of these formats. but you should use
-the newest one that is generally acceptable to your users' browsers.
-</p>
-
-<hr>
-<H2><A NAME="cookietracking">CookieTracking</A> directive</H2>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CookieTracking on|off<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host, directory,
-.htaccess<BR>
-<A
- HREF="directive-dict.html#Override"
- REL="Help"
-><STRONG>Override:</STRONG></A> FileInfo<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> optional<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> 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.
-
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+ <hr />
+
+ <h2><a id="cookiedomain" name="cookiedomain">CookieDomain</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><b>Syntax:</b></a> CookieDomain <i>domain</i><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><b>Context:</b></a> server config, virtual host,
+ directory, .htaccess<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><b>Status:</b></a> optional<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><b>Module:</b></a> mod_usertrack
+
+ <p>This directive controls the setting of the domain to which
+ the tracking cookie applies. If not present, no domain is
+ included in the cookie header field.</p>
+
+ <p>The domain string <b>must</b> begin with a dot, and
+ <b>must</b> include at least one embedded dot. That is,
+ ".foo.com" is legal, but "foo.bar.com" and ".com" are not.</p>
+ <hr />
+
+ <h2><a id="cookieexpires"
+ name="cookieexpires">CookieExpires</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CookieExpires
+ <em>expiry-period</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> <b>1.3.20 and
+ earlier:</b> server config, virtual host; <b>1.3.21 and
+ later:</b> server config, virtual host, directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> optional<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_usertrack
+
+ <p>When used, this directive sets an expiry time on the cookie
+ generated by the usertrack module. The <em>expiry-period</em>
+ 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. If the expiry
+ time is in any format other than one number indicating the
+ number of seconds, it must be enclosed by double quotes.</p>
+
+ <p>If this directive is not used, cookies last only for the
+ current browser session.</p>
+ <hr />
+
+ <h2><a id="cookiename" name="cookiename">CookieName</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CookieName
+ <em>token</em> <br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <em>Apache</em> <br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> optional<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_usertrack <br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.7 and
+ later
+
+ <p>This directive allows you to change the name of the cookie
+ this module uses for its tracking purposes. By default the
+ cookie is named "<code>Apache</code>".</p>
+
+ <p>You must specify a valid cookie name; results are
+ unpredictable if you use a name containing unusual characters.
+ Valid characters include A-Z, a-z, 0-9, "_", and "-".</p>
+ <hr />
+
+ <h2><a id="cookiestyle" name="cookiestyle">CookieStyle</a>
+ directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><b>Syntax:</b></a> CookieStyle
+ <i>Netscape|Cookie|Cookie2|RFC2109|RFC2965</i><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><b>Context:</b></a> server config, virtual host,
+ directory, .htaccess<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><b>Status:</b></a> optional<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><b>Module:</b></a> mod_usertrack
+
+ <p>This directive controls the format of the cookie header
+ field. The three formats allowed are:</p>
+
+ <ul>
+ <li><b>Netscape</b>, which is the original but now deprecated
+ syntax. This is the default, and the syntax Apache has
+ historically used.</li>
+
+ <li><b>Cookie</b> or <b>RFC2109</b>, which is the syntax that
+ superseded the Netscape syntax.</li>
+
+ <li><b>Cookie2</b> or <b>RFC2965</b>, which is the most
+ current cookie syntax.</li>
+ </ul>
+
+ <p>Not all clients can understand all of these formats. but you
+ should use the newest one that is generally acceptable to your
+ users' browsers.</p>
+ <hr />
+
+ <h2><a id="cookietracking"
+ name="cookietracking">CookieTracking</a> directive</h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CookieTracking
+ on|off<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> optional<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> 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. <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mod_vhost_alias.html b/docs/manual/mod/mod_vhost_alias.html
index 8051209073..1a6e6cc980 100644
--- a/docs/manual/mod/mod_vhost_alias.html
+++ b/docs/manual/mod/mod_vhost_alias.html
@@ -1,345 +1,340 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache module mod_vhost_alias</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-<H1 ALIGN="CENTER">Module mod_vhost_alias</H1>
-
-<P>
-This module provides support for <A
-HREF="../vhosts/mass.html">dynamically configured mass virtual
-hosting</A>.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> Extension
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mod_vhost_alias.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> vhost_alias_module
-<BR>
-<A
-HREF="module-dict.html#Compatibility"
-REL="Help"
-><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3.7 and later.
-</P>
-
-<h2>Summary</h2>
-
-<p>This module creates dynamically configured virtual hosts, by
-allowing the IP address and/or the <code>Host:</code> header of the
-HTTP request to be used as part of the pathname to determine what
-files to serve. This allows for easy use of a huge number of virtual
-hosts with similar configurations.</p>
-
-<H2>Directives</H2>
-<UL>
- <LI><A HREF="#virtualdocumentroot">VirtualDocumentRoot</A>
- <LI><A HREF="#virtualdocumentrootip">VirtualDocumentRootIP</A>
- <LI><A HREF="#virtualscriptalias">VirtualScriptAlias</A>
- <LI><A HREF="#virtualscriptaliasip">VirtualScriptAliasIP</A>
-</UL>
-
-<p>See also: <a href="core.html#usecanonicalname">UseCanonicalName</a>.</p>
-
-
-<H2>Directory Name Interpolation</H2>
-
-<P>
-All the directives in this module interpolate a string into a
-pathname. The interpolated string (henceforth called the "name") may
-be either the server name (see the
-<A HREF="core.html#usecanonicalname"><CODE>UseCanonicalName</CODE></A>
-directive for details on how this is determined) or the IP address of
-the virtual host on the server in dotted-quad format. The
-interpolation is controlled by specifiers inspired by
-<CODE>printf</CODE> which have a number of formats:
-<DL>
- <DT><CODE>%%</CODE>
- <DD>insert a <CODE>%</CODE>
- <DT><CODE>%p</CODE>
- <DD>insert the port number of the virtual host
- <DT><CODE>%N.M</CODE>
- <DD>insert (part of) the name
-</DL>
-</P>
-
-<P>
-<CODE>N</CODE> and <CODE>M</CODE> are used to specify substrings of
-the name. <CODE>N</CODE> selects from the dot-separated components of
-the name, and <CODE>M</CODE> selects characters within whatever
-<CODE>N</CODE> has selected. <CODE>M</CODE> is optional and defaults
-to zero if it isn't present; the dot must be present if and only if
-<CODE>M</CODE> is present. The interpretation is as follows:
-<DL>
- <DT><CODE>0</CODE>
- <DD>the whole name
- <DT><CODE>1</CODE>
- <DD>the first part
- <DT><CODE>2</CODE>
- <DD>the second part
- <DT><CODE>-1</CODE>
- <DD>the last part
- <DT><CODE>-2</CODE>
- <DD>the penultimate part
- <DT><CODE>2+</CODE>
- <DD>the second and all subsequent parts
- <DT><CODE>-2+</CODE>
- <DD>the penultimate and all preceding parts
- <DT><CODE>1+</CODE> and <CODE>-1+</CODE>
- <DD>the same as <CODE>0</CODE>
-</DL>
-If <CODE>N</CODE> or <CODE>M</CODE> is greater than the number of
-parts available a single underscore is interpolated.
-</P>
-
-<H3>Examples</H3>
-
-<P>
-For simple name-based virtual hosts you might use the following
-directives in your server configuration file:
-<PRE>
- UseCanonicalName Off
- VirtualDocumentRoot /usr/local/apache/vhosts/%0
-</PRE>
-A request for <CODE>http://www.example.com/directory/file.html</CODE>
-will be satisfied by the file
-<CODE>/usr/local/apache/vhosts/www.example.com/directory/file.html</CODE>.
-</P>
-
-<P>
-For a very large number of virtual hosts it is a good idea to arrange
-the files to reduce the size of the <CODE>vhosts</CODE> directory. To
-do this you might use the following in your configuration file:
-<PRE>
- UseCanonicalName Off
- VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2
-</PRE>
-A request for <CODE>http://www.example.isp.com/directory/file.html</CODE>
-will be satisfied by the file
-<CODE>/usr/local/apache/vhosts/isp.com/e/x/a/example/directory/file.html</CODE>.
-A more even spread of files can be achieved by hashing from the end of
-the name, for example:
-<PRE>
- VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2
-</PRE>
-The example request would come from
-<CODE>/usr/local/apache/vhosts/isp.com/e/l/p/example/directory/file.html</CODE>.
-Alternatively you might use:
-<PRE>
- VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+
-</PRE>
-The example request would come from
-<CODE>/usr/local/apache/vhosts/isp.com/e/x/a/mple/directory/file.html</CODE>.
-</P>
-
-<P>
-For IP-based virtual hosting you might use the following in your
-configuration file:
-<PRE>
- UseCanonicalName DNS
- VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
- VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin
-</PRE>
-A request for <CODE>http://www.example.isp.com/directory/file.html</CODE>
-would be satisfied by the file
-<CODE>/usr/local/apache/vhosts/10/20/30/40/docs/directory/file.html</CODE> if
-the IP address of <CODE>www.example.com</CODE> were 10.20.30.40.
-A request for <CODE>http://www.example.isp.com/cgi-bin/script.pl</CODE>
-would be satisfied by executing the program
-<CODE>/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl</CODE>.
-</P>
-
-<P>
-If you want to include the <CODE>.</CODE> character in a
-<CODE>VirtualDocumentRoot</CODE> directive, but it clashes with a
-<CODE>%</CODE> directive, you can work around the problem in the
-following way:
-<PRE>
- VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0
-</PRE>
-A request for <CODE>http://www.example.isp.com/directory/file.html</CODE>
-will be satisfied by the file
-<CODE>/usr/local/apache/vhosts/example.isp/directory/file.html</CODE>.
-</P>
-
-<P>
-The <A HREF="mod_log_config.html#formats">LogFormat directives</A>
-<CODE>%V</CODE> and <CODE>%A</CODE> are useful in conjunction with
-this module.
-</P>
-
-<HR>
-
-
-<H2><A NAME="virtualdocumentroot">VirtualDocumentRoot directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> VirtualDocumentRoot <EM>interpolated-directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_vhost_alias<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> VirtualDocumentRoot is only available in 1.3.7 and later.</P>
-<P>
-The <CODE>VirtualDocumentRoot</CODE> directive allows you to determine
-where Apache will find your documents based on the value of the server
-name. The result of expanding <EM>interpolated-directory</EM> is used
-as the root of the document tree in a similar manner to the
-<A HREF="core.html#documentroot"><CODE>DocumentRoot</CODE></A>
-directive's argument. If <EM>interpolated-directory</EM> is
-<CODE>none</CODE> then <CODE>VirtaulDocumentRoot</CODE> is turned off.
-This directive cannot be used in the same context as
-<A HREF="#virtualdocumentrootip"><CODE>VirtualDocumentRootIP</CODE></A>.
-</P>
-<HR>
-
-<H2><A NAME="virtualdocumentrootip">VirtualDocumentRootIP directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> VirtualDocumentRootIP <EM>interpolated-directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_vhost_alias<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> VirtualDocumentRootIP is only available in 1.3.7 and later.</P>
-<P>
-The <CODE>VirtualDocumentRootIP</CODE> directive is like the
-<A HREF="#virtualdocumentroot"><CODE>VirtualDocumentRoot</CODE></A> directive,
-except that it uses the IP address of the server end of the connection
-instead of the server name.
-</P>
-<HR>
-
-<H2><A NAME="virtualscriptalias">VirtualScriptAlias directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> VirtualScriptAlias <EM>interpolated-directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_vhost_alias<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> VirtualScriptAlias is only available in 1.3.7 and later.</P>
-<P>
-The <CODE>VirtualScriptAlias</CODE> directive allows you to determine
-where Apache will find CGI scripts in a similar manner to
-<A HREF="#virtualdocumentroot"><CODE>VirtualDocumentRoot</CODE></A>
-does for other documents. It matches requests for URIs starting
-<CODE>/cgi-bin/</CODE>, much like
-<CODE><A HREF="mod_alias.html#scriptalias">ScriptAlias</A> /cgi-bin/</CODE>
-would.
-</P>
-<HR>
-
-<H2><A NAME="virtualscriptaliasip">VirtualScriptAliasIP directive</A></H2>
-<P>
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> VirtualScriptAliasIP <EM>interpolated-directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> None<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> Extension<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> mod_vhost_alias<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-><STRONG>Compatibility:</STRONG></A> VirtualScriptAliasIP is only available in 1.3.7 and later.</P>
-<P>
-The <CODE>VirtualScriptAliasIP</CODE> directive is like the
-<A HREF="#virtualscriptalias"><CODE>VirtualScriptAlias</CODE></A> directive,
-except that it uses the IP address of the server end of the connection
-instead of the server name.
-</P>
-<HR>
-
-<H3 ALIGN="CENTER">
- Apache HTTP Server Version 1.3
-</H3>
-
-<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
-<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>
-
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_vhost_alias</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Module mod_vhost_alias</h1>
+
+ <p>This module provides support for <a
+ href="../vhosts/mass.html">dynamically configured mass virtual
+ hosting</a>.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_vhost_alias.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ vhost_alias_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3.7 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module creates dynamically configured virtual hosts, by
+ allowing the IP address and/or the <code>Host:</code> header of
+ the HTTP request to be used as part of the pathname to
+ determine what files to serve. This allows for easy use of a
+ huge number of virtual hosts with similar configurations.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a
+ href="#virtualdocumentroot">VirtualDocumentRoot</a></li>
+
+ <li><a
+ href="#virtualdocumentrootip">VirtualDocumentRootIP</a></li>
+
+ <li><a href="#virtualscriptalias">VirtualScriptAlias</a></li>
+
+ <li><a
+ href="#virtualscriptaliasip">VirtualScriptAliasIP</a></li>
+ </ul>
+
+ <p>See also: <a
+ href="core.html#usecanonicalname">UseCanonicalName</a>.</p>
+
+ <h2>Directory Name Interpolation</h2>
+
+ <p>All the directives in this module interpolate a string into
+ a pathname. The interpolated string (henceforth called the
+ "name") may be either the server name (see the <a
+ href="core.html#usecanonicalname"><code>UseCanonicalName</code></a>
+ directive for details on how this is determined) or the IP
+ address of the virtual host on the server in dotted-quad
+ format. The interpolation is controlled by specifiers inspired
+ by <code>printf</code> which have a number of formats:</p>
+
+ <dl>
+ <dt><code>%%</code></dt>
+
+ <dd>insert a <code>%</code></dd>
+
+ <dt><code>%p</code></dt>
+
+ <dd>insert the port number of the virtual host</dd>
+
+ <dt><code>%N.M</code></dt>
+
+ <dd>insert (part of) the name</dd>
+ </dl>
+ <br />
+ <br />
+
+
+ <p><code>N</code> and <code>M</code> are used to specify
+ substrings of the name. <code>N</code> selects from the
+ dot-separated components of the name, and <code>M</code>
+ selects characters within whatever <code>N</code> has selected.
+ <code>M</code> is optional and defaults to zero if it isn't
+ present; the dot must be present if and only if <code>M</code>
+ is present. The interpretation is as follows:</p>
+
+ <dl>
+ <dt><code>0</code></dt>
+
+ <dd>the whole name</dd>
+
+ <dt><code>1</code></dt>
+
+ <dd>the first part</dd>
+
+ <dt><code>2</code></dt>
+
+ <dd>the second part</dd>
+
+ <dt><code>-1</code></dt>
+
+ <dd>the last part</dd>
+
+ <dt><code>-2</code></dt>
+
+ <dd>the penultimate part</dd>
+
+ <dt><code>2+</code></dt>
+
+ <dd>the second and all subsequent parts</dd>
+
+ <dt><code>-2+</code></dt>
+
+ <dd>the penultimate and all preceding parts</dd>
+
+ <dt><code>1+</code> and <code>-1+</code></dt>
+
+ <dd>the same as <code>0</code></dd>
+ </dl>
+ If <code>N</code> or <code>M</code> is greater than the number
+ of parts available a single underscore is interpolated. <br />
+ <br />
+
+
+ <h3>Examples</h3>
+
+ <p>For simple name-based virtual hosts you might use the
+ following directives in your server configuration file:</p>
+<pre>
+ UseCanonicalName Off
+ VirtualDocumentRoot /usr/local/apache/vhosts/%0
+</pre>
+ A request for
+ <code>http://www.example.com/directory/file.html</code> will be
+ satisfied by the file
+ <code>/usr/local/apache/vhosts/www.example.com/directory/file.html</code>.
+ <br />
+ <br />
+
+
+ <p>For a very large number of virtual hosts it is a good idea
+ to arrange the files to reduce the size of the
+ <code>vhosts</code> directory. To do this you might use the
+ following in your configuration file:</p>
+<pre>
+ UseCanonicalName Off
+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2
+</pre>
+ A request for
+ <code>http://www.example.isp.com/directory/file.html</code>
+ will be satisfied by the file
+ <code>/usr/local/apache/vhosts/isp.com/e/x/a/example/directory/file.html</code>.
+ A more even spread of files can be achieved by hashing from the
+ end of the name, for example:
+<pre>
+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2
+</pre>
+ The example request would come from
+ <code>/usr/local/apache/vhosts/isp.com/e/l/p/example/directory/file.html</code>.
+ Alternatively you might use:
+<pre>
+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+
+</pre>
+ The example request would come from
+ <code>/usr/local/apache/vhosts/isp.com/e/x/a/mple/directory/file.html</code>.
+ <br />
+ <br />
+
+
+ <p>For IP-based virtual hosting you might use the following in
+ your configuration file:</p>
+<pre>
+ UseCanonicalName DNS
+ VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
+ VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin
+</pre>
+ A request for
+ <code>http://www.example.isp.com/directory/file.html</code>
+ would be satisfied by the file
+ <code>/usr/local/apache/vhosts/10/20/30/40/docs/directory/file.html</code>
+ if the IP address of <code>www.example.com</code> were
+ 10.20.30.40. A request for
+ <code>http://www.example.isp.com/cgi-bin/script.pl</code> would
+ be satisfied by executing the program
+ <code>/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl</code>.
+ <br />
+ <br />
+
+
+ <p>If you want to include the <code>.</code> character in a
+ <code>VirtualDocumentRoot</code> directive, but it clashes with
+ a <code>%</code> directive, you can work around the problem in
+ the following way:</p>
+<pre>
+ VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0
+</pre>
+ A request for
+ <code>http://www.example.isp.com/directory/file.html</code>
+ will be satisfied by the file
+ <code>/usr/local/apache/vhosts/example.isp/directory/file.html</code>.
+ <br />
+ <br />
+
+
+ <p>The <a href="mod_log_config.html#formats">LogFormat
+ directives</a> <code>%V</code> and <code>%A</code> are useful
+ in conjunction with this module.</p>
+ <hr />
+
+ <h2><a id="virtualdocumentroot"
+ name="virtualdocumentroot">VirtualDocumentRoot
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> VirtualDocumentRoot
+ <em>interpolated-directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ VirtualDocumentRoot is only available in 1.3.7 and later.</p>
+
+ <p>The <code>VirtualDocumentRoot</code> directive allows you to
+ determine where Apache will find your documents based on the
+ value of the server name. The result of expanding
+ <em>interpolated-directory</em> is used as the root of the
+ document tree in a similar manner to the <a
+ href="core.html#documentroot"><code>DocumentRoot</code></a>
+ directive's argument. If <em>interpolated-directory</em> is
+ <code>none</code> then <code>VirtaulDocumentRoot</code> is
+ turned off. This directive cannot be used in the same context
+ as <a
+ href="#virtualdocumentrootip"><code>VirtualDocumentRootIP</code></a>.</p>
+ <hr />
+
+ <h2><a id="virtualdocumentrootip"
+ name="virtualdocumentrootip">VirtualDocumentRootIP
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> VirtualDocumentRootIP
+ <em>interpolated-directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ VirtualDocumentRootIP is only available in 1.3.7 and later.</p>
+
+ <p>The <code>VirtualDocumentRootIP</code> directive is like the
+ <a
+ href="#virtualdocumentroot"><code>VirtualDocumentRoot</code></a>
+ directive, except that it uses the IP address of the server end
+ of the connection instead of the server name.</p>
+ <hr />
+
+ <h2><a id="virtualscriptalias"
+ name="virtualscriptalias">VirtualScriptAlias directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> VirtualScriptAlias
+ <em>interpolated-directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ VirtualScriptAlias is only available in 1.3.7 and later.</p>
+
+ <p>The <code>VirtualScriptAlias</code> directive allows you to
+ determine where Apache will find CGI scripts in a similar
+ manner to <a
+ href="#virtualdocumentroot"><code>VirtualDocumentRoot</code></a>
+ does for other documents. It matches requests for URIs starting
+ <code>/cgi-bin/</code>, much like <code><a
+ href="mod_alias.html#scriptalias">ScriptAlias</a>
+ /cgi-bin/</code> would.</p>
+ <hr />
+
+ <h2><a id="virtualscriptaliasip"
+ name="virtualscriptaliasip">VirtualScriptAliasIP
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> VirtualScriptAliasIP
+ <em>interpolated-directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> None<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ VirtualScriptAliasIP is only available in 1.3.7 and later.</p>
+
+ <p>The <code>VirtualScriptAliasIP</code> directive is like the
+ <a
+ href="#virtualscriptalias"><code>VirtualScriptAlias</code></a>
+ directive, except that it uses the IP address of the server end
+ of the connection instead of the server name.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</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/docs/manual/mod/module-dict.html b/docs/manual/mod/module-dict.html
index 7d99828e81..5e7cadb821 100644
--- a/docs/manual/mod/module-dict.html
+++ b/docs/manual/mod/module-dict.html
@@ -1,144 +1,123 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Definitions of terms used to describe Apache modules
- </TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Terms Used to Describe Apache Modules</H1>
-
- <P>
- Each Apache module is described using a common format that looks
- like this:
- </P>
- <DL>
- <DD><A
- HREF="#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> <EM>status</EM>
- <BR>
- <A
- HREF="#SourceFile"
- REL="Help"
- ><STRONG>Source File:</STRONG></A> <EM>source-file</EM>
- <BR>
- <A
- HREF="#ModuleIdentifier"
- REL="Help"
- ><STRONG>Module Identifier:</STRONG></A> <EM>module-identifier</EM>
- <BR>
- <A
- HREF="#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> <EM>compatibility notes</EM>
- </DD>
- </DL>
- <P>
- Each of the attributes, complete with values where possible, are
- described in this document.
- </P>
-
- <H2>Module Terms</H2>
- <UL>
- <LI><A HREF="#Status">Status</A>
- </LI>
- <LI><A HREF="#SourceFile">Source File</A>
- </LI>
- <LI><A HREF="#ModuleIdentifier">Module Identifier</A>
- </LI>
- <LI><A HREF="#Compatibility">Compatibility</A>
- </LI>
- </UL>
-
- <HR>
- <H2><A NAME="Status">Status</A></H2>
- <P>
- This indicates how tightly bound into the Apache Web server the
- module is; in other words, you may need to recompile the server in
- order to gain access to the module and its functionality. Possible
- values for this attribute are:
- </P>
- <DL>
- <DT><STRONG>MPM</STRONG>
- </DT>
- <DD>A module with status &quot;MPM&quot; is a <a
- href="../mpm.html">Multi-Processing Module</a>. Unlike the other
- types of modules, Apache must have one and only one MPM in use at
- any time. This type of module is responsible for basic request
- handling and dispatching.
- <P>
- </P>
- <DT><STRONG>Base</STRONG>
- </DT>
- <DD>A module labeled as having &quot;Base&quot; status is compiled
- and loaded into the server by default, and is therefore normally
- available unless you have taken steps to remove the module from your
- configuration.
- <P>
- </P>
- </DD>
- <DT><STRONG>Extension</STRONG>
- </DT>
- <DD>A module with &quot;Extension&quot; status is not normally
- compiled and loaded into the server. To enable the module and its
- functionality, you may need to change the server build
- configuration files and re-compile Apache.
- <P>
- </P>
- </DD>
- <DT><STRONG>Experimental</STRONG>
- </DT>
- <DD>&quot;Experimental&quot; status indicates that the module is
- available as part of the Apache kit, but you are on your own if you
- try to use it. The module is being documented for completeness,
- and is not necessarily supported.
- <P>
- </P>
- </DD>
- <DT><STRONG>External</STRONG>
- </DT>
- <DD>Modules which are not included with the base Apache
- distribution (&quot;third-party modules&quot;) may use the
- &quot;External&quot; status. We are not responsible for, nor do we
- support such modules.
- <P>
- </P>
- </DD>
- </DL>
-
- <HR>
- <H2><A NAME="SourceFile">Source File</A></H2>
- <P>
- This quite simply lists the name of the source file which contains
- the code for the module. This is also the name used by the <A
- HREF="core.html#ifmodule"><CODE>&lt;IfModule&gt;</CODE></A>
- directive.
- </P>
-
- <HR>
- <H2><A NAME="ModuleIdentifier">Module Identifier</A></H2>
- <P>
- This is a string which identifies the module for use in the <A
- HREF="mod_so.html#loadmodule">LoadModule</A> directive when
- dynamically loading modules. In particular, it is the name
- of the external variable of type module in the source file.
- </P>
-
- <HR>
- <H2><A NAME="Compatibility">Compatibility</A></H2>
- <P>
- If the module was not part of the original Apache version 2
- distribution, the version in which it was introduced should be listed
- here.
- </P>
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Definitions of terms used to describe Apache
+ modules</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Terms Used to Describe Apache Modules</h1>
+
+ <p>Each Apache module is described using a common format that
+ looks like this:</p>
+
+ <dl>
+ <dd><a href="#Status" rel="Help"><strong>Status:</strong></a>
+ <em>status</em><br />
+ <a href="#SourceFile" rel="Help"><strong>Source
+ File:</strong></a> <em>source-file</em><br />
+ <a href="#ModuleIdentifier" rel="Help"><strong>Module
+ Identifier:</strong></a> <em>module-identifier</em><br />
+ <a href="#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ <em>compatibility notes</em></dd>
+ </dl>
+
+ <p>Each of the attributes, complete with values where possible,
+ are described in this document.</p>
+
+ <h2>Module Terms</h2>
+
+ <ul>
+ <li><a href="#Status">Status</a></li>
+
+ <li><a href="#SourceFile">Source File</a></li>
+
+ <li><a href="#ModuleIdentifier">Module Identifier</a></li>
+
+ <li><a href="#Compatibility">Compatibility</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="Status" name="Status">Status</a></h2>
+
+ <p>This indicates how tightly bound into the Apache Web server
+ the module is; in other words, you may need to recompile the
+ server in order to gain access to the module and its
+ functionality. Possible values for this attribute are:</p>
+
+ <dl>
+ <dt><strong>MPM</strong></dt>
+
+ <dd>A module with status "MPM" is a <a
+ href="../mpm.html">Multi-Processing Module</a>. Unlike the
+ other types of modules, Apache must have one and only one MPM
+ in use at any time. This type of module is responsible for
+ basic request handling and dispatching.</dd>
+
+ <dt><strong>Base</strong></dt>
+
+ <dd>A module labeled as having "Base" status is compiled and
+ loaded into the server by default, and is therefore normally
+ available unless you have taken steps to remove the module
+ from your configuration.</dd>
+
+ <dt><strong>Extension</strong></dt>
+
+ <dd>A module with "Extension" status is not normally compiled
+ and loaded into the server. To enable the module and its
+ functionality, you may need to change the server build
+ configuration files and re-compile Apache.</dd>
+
+ <dt><strong>Experimental</strong></dt>
+
+ <dd>"Experimental" status indicates that the module is
+ available as part of the Apache kit, but you are on your own
+ if you try to use it. The module is being documented for
+ completeness, and is not necessarily supported.</dd>
+
+ <dt><strong>External</strong></dt>
+
+ <dd>Modules which are not included with the base Apache
+ distribution ("third-party modules") may use the "External"
+ status. We are not responsible for, nor do we support such
+ modules.</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="SourceFile" name="SourceFile">Source File</a></h2>
+
+ <p>This quite simply lists the name of the source file which
+ contains the code for the module. This is also the name used by
+ the <a
+ href="core.html#ifmodule"><code>&lt;IfModule&gt;</code></a>
+ directive.</p>
+ <hr />
+
+ <h2><a id="ModuleIdentifier" name="ModuleIdentifier">Module
+ Identifier</a></h2>
+
+ <p>This is a string which identifies the module for use in the
+ <a href="mod_so.html#loadmodule">LoadModule</a> directive when
+ dynamically loading modules. In particular, it is the name of
+ the external variable of type module in the source file.</p>
+ <hr />
+
+ <h2><a id="Compatibility"
+ name="Compatibility">Compatibility</a></h2>
+
+ <p>If the module was not part of the original Apache version 2
+ distribution, the version in which it was introduced should be
+ listed here.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/module-dict.html.en b/docs/manual/mod/module-dict.html.en
index 7d99828e81..5e7cadb821 100644
--- a/docs/manual/mod/module-dict.html.en
+++ b/docs/manual/mod/module-dict.html.en
@@ -1,144 +1,123 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Definitions of terms used to describe Apache modules
- </TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Terms Used to Describe Apache Modules</H1>
-
- <P>
- Each Apache module is described using a common format that looks
- like this:
- </P>
- <DL>
- <DD><A
- HREF="#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> <EM>status</EM>
- <BR>
- <A
- HREF="#SourceFile"
- REL="Help"
- ><STRONG>Source File:</STRONG></A> <EM>source-file</EM>
- <BR>
- <A
- HREF="#ModuleIdentifier"
- REL="Help"
- ><STRONG>Module Identifier:</STRONG></A> <EM>module-identifier</EM>
- <BR>
- <A
- HREF="#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> <EM>compatibility notes</EM>
- </DD>
- </DL>
- <P>
- Each of the attributes, complete with values where possible, are
- described in this document.
- </P>
-
- <H2>Module Terms</H2>
- <UL>
- <LI><A HREF="#Status">Status</A>
- </LI>
- <LI><A HREF="#SourceFile">Source File</A>
- </LI>
- <LI><A HREF="#ModuleIdentifier">Module Identifier</A>
- </LI>
- <LI><A HREF="#Compatibility">Compatibility</A>
- </LI>
- </UL>
-
- <HR>
- <H2><A NAME="Status">Status</A></H2>
- <P>
- This indicates how tightly bound into the Apache Web server the
- module is; in other words, you may need to recompile the server in
- order to gain access to the module and its functionality. Possible
- values for this attribute are:
- </P>
- <DL>
- <DT><STRONG>MPM</STRONG>
- </DT>
- <DD>A module with status &quot;MPM&quot; is a <a
- href="../mpm.html">Multi-Processing Module</a>. Unlike the other
- types of modules, Apache must have one and only one MPM in use at
- any time. This type of module is responsible for basic request
- handling and dispatching.
- <P>
- </P>
- <DT><STRONG>Base</STRONG>
- </DT>
- <DD>A module labeled as having &quot;Base&quot; status is compiled
- and loaded into the server by default, and is therefore normally
- available unless you have taken steps to remove the module from your
- configuration.
- <P>
- </P>
- </DD>
- <DT><STRONG>Extension</STRONG>
- </DT>
- <DD>A module with &quot;Extension&quot; status is not normally
- compiled and loaded into the server. To enable the module and its
- functionality, you may need to change the server build
- configuration files and re-compile Apache.
- <P>
- </P>
- </DD>
- <DT><STRONG>Experimental</STRONG>
- </DT>
- <DD>&quot;Experimental&quot; status indicates that the module is
- available as part of the Apache kit, but you are on your own if you
- try to use it. The module is being documented for completeness,
- and is not necessarily supported.
- <P>
- </P>
- </DD>
- <DT><STRONG>External</STRONG>
- </DT>
- <DD>Modules which are not included with the base Apache
- distribution (&quot;third-party modules&quot;) may use the
- &quot;External&quot; status. We are not responsible for, nor do we
- support such modules.
- <P>
- </P>
- </DD>
- </DL>
-
- <HR>
- <H2><A NAME="SourceFile">Source File</A></H2>
- <P>
- This quite simply lists the name of the source file which contains
- the code for the module. This is also the name used by the <A
- HREF="core.html#ifmodule"><CODE>&lt;IfModule&gt;</CODE></A>
- directive.
- </P>
-
- <HR>
- <H2><A NAME="ModuleIdentifier">Module Identifier</A></H2>
- <P>
- This is a string which identifies the module for use in the <A
- HREF="mod_so.html#loadmodule">LoadModule</A> directive when
- dynamically loading modules. In particular, it is the name
- of the external variable of type module in the source file.
- </P>
-
- <HR>
- <H2><A NAME="Compatibility">Compatibility</A></H2>
- <P>
- If the module was not part of the original Apache version 2
- distribution, the version in which it was introduced should be listed
- here.
- </P>
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Definitions of terms used to describe Apache
+ modules</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Terms Used to Describe Apache Modules</h1>
+
+ <p>Each Apache module is described using a common format that
+ looks like this:</p>
+
+ <dl>
+ <dd><a href="#Status" rel="Help"><strong>Status:</strong></a>
+ <em>status</em><br />
+ <a href="#SourceFile" rel="Help"><strong>Source
+ File:</strong></a> <em>source-file</em><br />
+ <a href="#ModuleIdentifier" rel="Help"><strong>Module
+ Identifier:</strong></a> <em>module-identifier</em><br />
+ <a href="#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a>
+ <em>compatibility notes</em></dd>
+ </dl>
+
+ <p>Each of the attributes, complete with values where possible,
+ are described in this document.</p>
+
+ <h2>Module Terms</h2>
+
+ <ul>
+ <li><a href="#Status">Status</a></li>
+
+ <li><a href="#SourceFile">Source File</a></li>
+
+ <li><a href="#ModuleIdentifier">Module Identifier</a></li>
+
+ <li><a href="#Compatibility">Compatibility</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="Status" name="Status">Status</a></h2>
+
+ <p>This indicates how tightly bound into the Apache Web server
+ the module is; in other words, you may need to recompile the
+ server in order to gain access to the module and its
+ functionality. Possible values for this attribute are:</p>
+
+ <dl>
+ <dt><strong>MPM</strong></dt>
+
+ <dd>A module with status "MPM" is a <a
+ href="../mpm.html">Multi-Processing Module</a>. Unlike the
+ other types of modules, Apache must have one and only one MPM
+ in use at any time. This type of module is responsible for
+ basic request handling and dispatching.</dd>
+
+ <dt><strong>Base</strong></dt>
+
+ <dd>A module labeled as having "Base" status is compiled and
+ loaded into the server by default, and is therefore normally
+ available unless you have taken steps to remove the module
+ from your configuration.</dd>
+
+ <dt><strong>Extension</strong></dt>
+
+ <dd>A module with "Extension" status is not normally compiled
+ and loaded into the server. To enable the module and its
+ functionality, you may need to change the server build
+ configuration files and re-compile Apache.</dd>
+
+ <dt><strong>Experimental</strong></dt>
+
+ <dd>"Experimental" status indicates that the module is
+ available as part of the Apache kit, but you are on your own
+ if you try to use it. The module is being documented for
+ completeness, and is not necessarily supported.</dd>
+
+ <dt><strong>External</strong></dt>
+
+ <dd>Modules which are not included with the base Apache
+ distribution ("third-party modules") may use the "External"
+ status. We are not responsible for, nor do we support such
+ modules.</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="SourceFile" name="SourceFile">Source File</a></h2>
+
+ <p>This quite simply lists the name of the source file which
+ contains the code for the module. This is also the name used by
+ the <a
+ href="core.html#ifmodule"><code>&lt;IfModule&gt;</code></a>
+ directive.</p>
+ <hr />
+
+ <h2><a id="ModuleIdentifier" name="ModuleIdentifier">Module
+ Identifier</a></h2>
+
+ <p>This is a string which identifies the module for use in the
+ <a href="mod_so.html#loadmodule">LoadModule</a> directive when
+ dynamically loading modules. In particular, it is the name of
+ the external variable of type module in the source file.</p>
+ <hr />
+
+ <h2><a id="Compatibility"
+ name="Compatibility">Compatibility</a></h2>
+
+ <p>If the module was not part of the original Apache version 2
+ distribution, the version in which it was introduced should be
+ listed here.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mpm_common.html b/docs/manual/mod/mpm_common.html
index 39c629e7fa..bc414cee85 100644
--- a/docs/manual/mod/mpm_common.html
+++ b/docs/manual/mod/mpm_common.html
@@ -1,771 +1,696 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache MPM Common Directives</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Multi-Processing Module Common Directives</H1>
-
-<P>This file documents directives that are implemented by more
-than one multi-processing module (MPM).
-</P>
-
-<H2>Directives</H2>
-<UL>
-<li><a href="#connectionstatus">ConnectionStatus</a></li>
-<li><a href="#coredumpdirectory">CoreDumpDirectory</a></li>
-<li><a href="#group">Group</a></li>
-<li><a href="#pidfile">PidFile</a></li>
-<li><a href="#listen">Listen</a></li>
-<li><a href="#listenbacklog">ListenBacklog</a></li>
-<li><a href="#lockfile">LockFile</a></li>
-<li><a href="#maxclients">MaxClients</a></li>
-<li><a href="#maxrequestsperchild">MaxRequestsPerChild</a></li>
-<li><a href="#maxsparethreads">MaxSpareThreads</a></li>
-<li><a href="#maxthreadsperchild">MaxThreadsPerChild</a></li>
-<li><a href="#minsparethreads">MinSpareThreads</a></li>
-<li><a href="#numservers">NumServers</a></li>
-<li><a href="#scoreboardfile">ScoreBoardFile</a></li>
-<li><a href="#sendbuffersize">SendBufferSize</a></li>
-<li><a href="#startservers">StartServers</a></li>
-<li><a href="#startthreads">StartThreads</a></li>
-<li><a href="#threadsperchild">ThreadsPerChild</a></li>
-<li><a href="#user">User</a></li>
-</UL>
-<HR>
-
-<H2><A NAME="connectionstatus">ConnectionStatus directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A>
- ConnectionStatus on|off<BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A>
- <CODE>ConnectionStatus on</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> perchild</p>
-
-<p>Whether or not to maintain status information on current
-connections. If this is off then mod_status will not work properly.</p>
-
-<hr>
-
-<H2><A NAME="coredumpdirectory">CoreDumpDirectory directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt CoreDumpDirectory} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> CoreDumpDirectory <EM>directory</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> the same location as ServerRoot<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p>
-
-<p>This controls the directory to which Apache attempts to switch
-before dumping core. The default is in the <A
-HREF="core.html#serverroot">ServerRoot</A> directory, however since
-this should not be writable by the user the server runs as, core dumps
-won't normally get written. If you want a core dump for debugging,
-you can use this directive to place it in a different location.<P><HR>
-
-
-<H2><A NAME="group">Group directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt Group} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> Group <EM>unix-group</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>Group #-1</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork</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&lt; is no longer
-supported. To implement the <A HREF="../suexec.html">suEXEC wrapper</A>
-with Apache 2.0, use the <A HREF=mod_suexec.html#suexecusergroup>
-SuexecUserGroup</A> directive.
-
-SECURITY: See <A HREF="#user">User</A> for a discussion of the security
-considerations.<P><HR>
-
-<H2><A NAME="pidfile">PidFile directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt PidFile} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> PidFile <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>PidFile logs/httpd.pid</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p>
-
-<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="core.html#serverroot">ServerRoot</A>.</p>
-
-<p>It is often useful to be able to send the server a signal, so that
-it closes and then reopens its <A
-HREF="core.html#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>
-
-<p>The PidFile is subject to the same warnings about log file placement and
-<A HREF="../misc/security_tips.html#serverroot">security</A>.</p>
-
-<p><hr>
-
-<H2><A NAME="listen">Listen directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A>
-Listen [<EM>IP-address</EM>:]<EM>port number</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p>
-
-
-<P>The Listen directive instructs Apache to listen to only specific IP
-addresses or ports; by default it responds to requests on all IP
-interfaces, but only on the port given by the <CODE><A
-HREF="core.html#port">Port</A></CODE> directive.</P>
-
-<p>The Listen directive tells
-the server to accept incoming requests on the specified port or
-address-and-port combination. If only a port number is specified,
-the server listens to the given port on all interfaces,
-instead of the port given by the <TT>Port</TT> directive. If an IP
-address is given as well as a port, the server will listen on the
-given port and interface. <P>
-
-Note that you may still require a <TT>Port</TT> directive so
-that URLs that Apache generates that point to your server still
-work.<P>
-
-Multiple Listen directives may be used
-to specify a number of addresses and ports to listen to. The server
-will respond to requests from any of the listed addresses and
-ports.
-<P>
-
-For example, to make the server accept connections on both port
-80 and port 8000, use:
-<PRE>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache MPM Common Directives</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Multi-Processing Module Common
+ Directives</h1>
+
+ <p>This file documents directives that are implemented by more
+ than one multi-processing module (MPM).</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#connectionstatus">ConnectionStatus</a></li>
+
+ <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li>
+
+ <li><a href="#group">Group</a></li>
+
+ <li><a href="#pidfile">PidFile</a></li>
+
+ <li><a href="#listen">Listen</a></li>
+
+ <li><a href="#listenbacklog">ListenBacklog</a></li>
+
+ <li><a href="#lockfile">LockFile</a></li>
+
+ <li><a href="#maxclients">MaxClients</a></li>
+
+ <li><a
+ href="#maxrequestsperchild">MaxRequestsPerChild</a></li>
+
+ <li><a href="#maxsparethreads">MaxSpareThreads</a></li>
+
+ <li><a href="#maxthreadsperchild">MaxThreadsPerChild</a></li>
+
+ <li><a href="#minsparethreads">MinSpareThreads</a></li>
+
+ <li><a href="#numservers">NumServers</a></li>
+
+ <li><a href="#scoreboardfile">ScoreBoardFile</a></li>
+
+ <li><a href="#sendbuffersize">SendBufferSize</a></li>
+
+ <li><a href="#startservers">StartServers</a></li>
+
+ <li><a href="#startthreads">StartThreads</a></li>
+
+ <li><a href="#threadsperchild">ThreadsPerChild</a></li>
+
+ <li><a href="#user">User</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="connectionstatus"
+ name="connectionstatus">ConnectionStatus directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ConnectionStatus
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>ConnectionStatus
+ on</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> perchild</p>
+
+ <p>Whether or not to maintain status information on current
+ connections. If this is off then mod_status will not work
+ properly.</p>
+ <hr />
+
+ <h2><a id="coredumpdirectory"
+ name="coredumpdirectory">CoreDumpDirectory directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt CoreDumpDirectory} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CoreDumpDirectory
+ <em>directory</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> the same location as
+ ServerRoot<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork, mpm_winnt</p>
+
+ <p>This controls the directory to which Apache attempts to
+ switch before dumping core. The default is in the <a
+ href="core.html#serverroot">ServerRoot</a> directory, however
+ since this should not be writable by the user the server runs
+ as, core dumps won't normally get written. If you want a core
+ dump for debugging, you can use this directive to place it in a
+ different location.</p>
+ <hr />
+
+ <h2><a id="group" name="group">Group directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt Group} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Group
+ <em>unix-group</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>Group
+ #-1</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork</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</dt>
+
+ <dd>Refers to the given group by name.</dd>
+
+ <dt># followed by a group number.</dt>
+
+ <dd>Refers to a group by its number.</dd>
+ </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>
+
+ <p>Special note: Use of this directive in &lt;VirtualHost&lt;
+ is no longer supported. To implement the <a
+ href="../suexec.html">suEXEC wrapper</a> with Apache 2.0, use
+ the <a
+ href="mod_suexec.html#suexecusergroup">SuexecUserGroup</a>
+ directive. SECURITY: See <a href="#user">User</a> for a
+ discussion of the security considerations.</p>
+ <hr />
+
+ <h2><a id="pidfile" name="pidfile">PidFile directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt PidFile} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> PidFile
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>PidFile
+ logs/httpd.pid</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork, mpm_winnt</p>
+
+ <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="core.html#serverroot">ServerRoot</a>.</p>
+
+ <p>It is often useful to be able to send the server a signal,
+ so that it closes and then reopens its <a
+ href="core.html#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>
+
+ <p>The PidFile is subject to the same warnings about log file
+ placement and <a
+ href="../misc/security_tips.html#serverroot">security</a>.</p>
+ <hr />
+
+ <h2><a id="listen" name="listen">Listen directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Listen
+ [<em>IP-address</em>:]<em>port number</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork, mpm_winnt</p>
+
+ <p>The Listen directive instructs Apache to listen to only
+ specific IP addresses or ports; by default it responds to
+ requests on all IP interfaces, but only on the port given by
+ the <code><a href="core.html#port">Port</a></code>
+ directive.</p>
+
+ <p>The Listen directive tells the server to accept incoming
+ requests on the specified port or address-and-port combination.
+ If only a port number is specified, the server listens to the
+ given port on all interfaces, instead of the port given by the
+ <tt>Port</tt> directive. If an IP address is given as well as a
+ port, the server will listen on the given port and
+ interface.</p>
+
+ <p>Note that you may still require a <tt>Port</tt> directive so
+ that URLs that Apache generates that point to your server still
+ work.</p>
+
+ <p>Multiple Listen directives may be used to specify a number
+ of addresses and ports to listen to. The server will respond to
+ requests from any of the listed addresses and ports.</p>
+
+ <p>For example, to make the server accept connections on both
+ port 80 and port 8000, use:</p>
+<pre>
Listen 80
Listen 8000
-</PRE>
-
-To make the server accept connections on two specified
-interfaces and port numbers, use
-<PRE>
+</pre>
+ To make the server accept connections on two specified
+ interfaces and port numbers, use
+<pre>
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
-</PRE>
-
-<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="http://www.apache.org/info/known_bugs.html#listenbug">Known Bugs</A>
-</P>
-<HR>
-
-<H2><A NAME="listenbacklog">ListenBacklog directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ListenBacklog <EM>backlog</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>ListenBacklog 511</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p>
-
-<P>The maximum length of the queue of pending connections. Generally no
-tuning is needed or desired, however on some systems it is desirable
-to increase this when under a TCP SYN flood attack. See
-the backlog parameter to the <CODE>listen(2)</CODE> system call.
-
-<P>This will often be limited to a smaller number by the operating
-system. This varies from OS to OS. Also note that many OSes do not
-use exactly what is specified as the backlog, but use a number based on
-(but normally larger than) what is set.
-<HR>
-
-<H2><A NAME="lockfile">LockFile directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> LockFile <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>LockFile logs/accept.lock</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p>
-
-<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 <STRONG>the lockfile
-must be stored on a local disk</STRONG>. The PID of the main
-server process is automatically appended to the filename. <P>
-
-<p><STRONG>SECURITY:</STRONG> It is best to avoid putting this file in a
-world writable directory such as <CODE>/var/tmp</CODE> because someone
-could create a denial of service attack and prevent the server from
-starting by creating a lockfile with the same name as the one the
-server will try to create.</p>
-
-<hr>
-
-<H2><A NAME="maxclients">MaxClients directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MaxClients} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MaxClients <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxClients 8</code> (with threads)
-<code>MaxClients 256</code> (no threads)<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, prefork</p>
-
-<P>The MaxClients directive sets the limit on the number of child
-processes that will be created to serve requests. When the server is
-built without threading, no more than this number of clients can be
-served simultaneously. To configure more than 256 clients, you must
-edit the <code>HARD_SERVER_LIMIT</code> entry in
-<code>mpm_default.h</code> and recompile.
-
-<P>Any connection attempts over the MaxClients limit will normally
-be queued, up to a number based on the <A HREF="#listenbacklog">
-ListenBacklog</A> directive. Once a child process is freed at the
-end of a different request, the connection will then be serviced.</p>
-
-<p>When the server is compiled with threading, then the maximum number
-of simultaneous requests that can be served is obtained from the value
-of this directive multiplied by <a
-href="#threadsperchild">ThreadsPerChild</a>.</p>
-
-<HR>
-
-<H2><A NAME="maxrequestsperchild">MaxRequestsPerChild directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MaxRequestsPerChild} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MaxRequestsPerChild <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxRequestsPerChild 10000</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, prefork, perchild, mpm_winnt</p>
-
-<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><STRONG>NOTE:</STRONG> For <EM>KeepAlive</EM> requests, only the first
-request is counted towards this limit. In effect, it changes the
-behavior to limit the number of <EM>connections</EM> per child.
-
-<P><HR>
-
-
-<H2><A NAME="maxsparethreads">MaxSpareThreads directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MaxSpareThreads <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 10 (Perchild) or 500 (threaded) </CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild</p>
-
-<P>Maximum number of idle threads. Different MPMs deal with this directive
-differently. Perchild monitor the number of idle threads on a
-per-child basis. If there are too many idle threads in that child, the server
-will begin to kill threads within that child.</P>
-<P>threaded deals with idle threads on a server-wide basis. If there are
-too many idle threads in the server then child processes are killed
-until the number of idle threads is less than this number.</p>
-
-<p>See also <A HREF="#minsparethreads">MinSpareThreads</A> and
-<A HREF="#startservers">StartServers</A>.
-
-<P><HR>
-
-<H2><A NAME="maxthreadsperchild">MaxThreadsPerChild directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MaxThreadsPerChild <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxThreadsPerChild 64</code>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild</p>
-
-<P>Maximum number of threads per child. For MPMs with a variable
-number of threads per child, this directive sets the maximum number of
-threads that will be created in each child process. To increase this
-value beyond its default, it is necessary to change the value of
-the compile-time define <code>HARD_THREAD_LIMIT</code> and recompile
-the server.</p>
-
-<P><HR>
-
-<H2><A NAME="minsparethreads">MinSpareThreads directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MinSpareServers <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 5 (Perchild) or 250 (threaded) </CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild</p>
-
-<P>Minimum number of idle threads to handle request spikes. Different MPMs
-deal with this directive differently. Perchild monitor the number
-of idle threads on a per-child basis. If there aren't enough idle threads in
-that child, the server will begin to create new threads within that child.
-</P>
-<P>threaded deals with idle threads on a server-wide basis. If there
-aren't enough idle threads in the server then child processes are created
-until the number of idle threads is greater than number.</p>
-
-See also <A HREF="#maxsparethreads">MaxSpareThreads</A> and
-<A HREF="#startservers">StartServers</A>.<P><HR>
-
-
-<H2><A NAME="numservers">NumServers directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> NumServers <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>NumServers 2</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> perchild</p>
-
-<p>Number of children alive at the same time. MPMs that use this directive
-do not dynamically create new child processes so this number should be
-large enough to handle the requests for the entire site.</p>
-
-<hr>
-
-<H2><A NAME="scoreboardfile">ScoreBoardFile directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt ScoreBoardFile} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ScoreBoardFile <EM>filename</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>ScoreBoardFile logs/apache_status</CODE>
-<BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
-></a>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p>
-
-<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>
-
-<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>
-
-<p><STRONG>See Also</STRONG>:
-<A HREF="../stopping.html">Stopping and Restarting Apache</A></P>
-
-
-<P><HR>
-
-<H2><A NAME="sendbuffersize">SendBufferSize directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt SendBufferSize} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> SendBufferSize <EM>bytes</EM><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</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 (<EM>i.e.</EM>, 100ms or so, such as transcontinental
-fast pipes)
-
-<P><HR>
-
-<H2><A NAME="startservers">StartServers directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt StartServers} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> StartServers <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>StartServers 5</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, prefork</p>
-
-<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>
-
-<P>See also <A HREF="#minsparethreads">MinSpareThreads</A> and
-<A HREF="#maxsparethreads">MaxSpareThreads</A>.<P><HR>
-
-
-<H2><A NAME="startthreads">StartThreads directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> StartThreads <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>StartThreads 5</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> perchild</p>
-
-<p>Number of threads each child creates on startup. As the number of threads
-is dynamically controlled depending on the load, there is usually little
-reason to adjust this parameter.</p>
-
-<hr>
-
-<H2><A NAME="threadsperchild">ThreadsPerChild</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> ThreadsPerChild <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>ThreadsPerChild 50</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, mpm_winnt</p>
-
-<P>This directive sets the number of threads created by each child
-process. The child creates these threads at startup and never creates
-more. if using an MPM like mpmt_winnt, where there is only one child process,
-this number should be high enough to handle the entire load of the server.
-If using an MPM like threaded, where there are multiple child processes,
-the total number of threads should be high enough to handle the common load
-on the server.</p>
-
-<p><hr>
-
-
-<H2><A NAME="user">User directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt User} directive&gt; -->
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> User <EM>unix-userid</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>User #-1</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config, virtual host<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> threaded, perchild, prefork</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.
-For example mod_proxy's cache, when enabled, must be accessible to this user
-(see <A HREF="mod_proxy.html">mod_proxy's</A> <CODE>CacheRoot</CODE>
-directive).<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; is no longer
-supported. To configure your server for <A HREF="mod_suexec.html">
-suexec</A> use <A HREF="mod_suexec.html#suexecusergroup">SuexecUserGroup</A>.
-
-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>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+</pre>
+
+ <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="http://www.apache.org/info/known_bugs.html#listenbug">Known
+ Bugs</a></p>
+ <hr />
+
+ <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ListenBacklog
+ <em>backlog</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>ListenBacklog
+ 511</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork, mpm_winnt</p>
+
+ <p>The maximum length of the queue of pending connections.
+ Generally no tuning is needed or desired, however on some
+ systems it is desirable to increase this when under a TCP SYN
+ flood attack. See the backlog parameter to the
+ <code>listen(2)</code> system call.</p>
+
+ <p>This will often be limited to a smaller number by the
+ operating system. This varies from OS to OS. Also note that
+ many OSes do not use exactly what is specified as the backlog,
+ but use a number based on (but normally larger than) what is
+ set.</p>
+ <hr />
+
+ <h2><a id="lockfile" name="lockfile">LockFile
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LockFile
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>LockFile
+ logs/accept.lock</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork</p>
+
+ <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
+ <strong>the lockfile must be stored on a local disk</strong>.
+ The PID of the main server process is automatically appended to
+ the filename.</p>
+
+ <p><strong>SECURITY:</strong> It is best to avoid putting this
+ file in a world writable directory such as
+ <code>/var/tmp</code> because someone could create a denial of
+ service attack and prevent the server from starting by creating
+ a lockfile with the same name as the one the server will try to
+ create.</p>
+ <hr />
+
+ <h2><a id="maxclients" name="maxclients">MaxClients
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt MaxClients} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MaxClients
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MaxClients
+ 8</code> (with threads) <code>MaxClients 256</code> (no
+ threads)<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, prefork</p>
+
+ <p>The MaxClients directive sets the limit on the number of
+ child processes that will be created to serve requests. When
+ the server is built without threading, no more than this number
+ of clients can be served simultaneously. To configure more than
+ 256 clients, you must edit the <code>HARD_SERVER_LIMIT</code>
+ entry in <code>mpm_default.h</code> and recompile.</p>
+
+ <p>Any connection attempts over the MaxClients limit will
+ normally be queued, up to a number based on the <a
+ href="#listenbacklog">ListenBacklog</a> directive. Once a child
+ process is freed at the end of a different request, the
+ connection will then be serviced.</p>
+
+ <p>When the server is compiled with threading, then the maximum
+ number of simultaneous requests that can be served is obtained
+ from the value of this directive multiplied by <a
+ href="#threadsperchild">ThreadsPerChild</a>.</p>
+ <hr />
+
+ <h2><a id="maxrequestsperchild"
+ name="maxrequestsperchild">MaxRequestsPerChild
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt MaxRequestsPerChild} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MaxRequestsPerChild
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>MaxRequestsPerChild 10000</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, prefork,
+ perchild, mpm_winnt</p>
+
+ <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>
+
+ <p>Setting MaxRequestsPerChild to a non-zero limit has two
+ beneficial effects:</p>
+
+ <ul>
+ <li>it limits the amount of memory that process can consume
+ by (accidental) memory leakage;</li>
+
+ <li>by giving processes a finite lifetime, it helps reduce
+ the number of processes when the server load reduces.</li>
+ </ul>
+
+ <p><strong>NOTE:</strong> For <em>KeepAlive</em> requests, only
+ the first request is counted towards this limit. In effect, it
+ changes the behavior to limit the number of
+ <em>connections</em> per child.</p>
+ <hr />
+
+ <h2><a id="maxsparethreads"
+ name="maxsparethreads">MaxSpareThreads directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MaxSpareThreads
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MaxSpareThreads
+ 10 (Perchild) or 500 (threaded)</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> core<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild</p>
+
+ <p>Maximum number of idle threads. Different MPMs deal with
+ this directive differently. Perchild monitor the number of idle
+ threads on a per-child basis. If there are too many idle
+ threads in that child, the server will begin to kill threads
+ within that child.</p>
+
+ <p>threaded deals with idle threads on a server-wide basis. If
+ there are too many idle threads in the server then child
+ processes are killed until the number of idle threads is less
+ than this number.</p>
+
+ <p>See also <a href="#minsparethreads">MinSpareThreads</a> and
+ <a href="#startservers">StartServers</a>.</p>
+ <hr />
+
+ <h2><a id="maxthreadsperchild"
+ name="maxthreadsperchild">MaxThreadsPerChild directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MaxThreadsPerChild
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a>
+ <code>MaxThreadsPerChild 64</code> <a
+ href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> core<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild</p>
+
+ <p>Maximum number of threads per child. For MPMs with a
+ variable number of threads per child, this directive sets the
+ maximum number of threads that will be created in each child
+ process. To increase this value beyond its default, it is
+ necessary to change the value of the compile-time define
+ <code>HARD_THREAD_LIMIT</code> and recompile the server.</p>
+ <hr />
+
+ <h2><a id="minsparethreads"
+ name="minsparethreads">MinSpareThreads directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MinSpareServers
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MaxSpareThreads
+ 5 (Perchild) or 250 (threaded)</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> core<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild</p>
+
+ <p>Minimum number of idle threads to handle request spikes.
+ Different MPMs deal with this directive differently. Perchild
+ monitor the number of idle threads on a per-child basis. If
+ there aren't enough idle threads in that child, the server will
+ begin to create new threads within that child.</p>
+
+ <p>threaded deals with idle threads on a server-wide basis. If
+ there aren't enough idle threads in the server then child
+ processes are created until the number of idle threads is
+ greater than number.</p>
+ See also <a href="#maxsparethreads">MaxSpareThreads</a> and <a
+ href="#startservers">StartServers</a>.
+ <hr />
+
+ <h2><a id="numservers" name="numservers">NumServers
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> NumServers
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>NumServers
+ 2</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> perchild</p>
+
+ <p>Number of children alive at the same time. MPMs that use
+ this directive do not dynamically create new child processes so
+ this number should be large enough to handle the requests for
+ the entire site.</p>
+ <hr />
+
+ <h2><a id="scoreboardfile" name="scoreboardfile">ScoreBoardFile
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt ScoreBoardFile} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScoreBoardFile
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>ScoreBoardFile
+ logs/apache_status</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Compatibility" rel="Help"></a> <a
+ href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork</p>
+
+ <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>
+
+ <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>
+
+ <p><strong>See Also</strong>: <a
+ href="../stopping.html">Stopping and Restarting Apache</a></p>
+ <hr />
+
+ <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt SendBufferSize} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> SendBufferSize
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork, mpm_winnt</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 (<em>i.e.</em>, 100ms or so, such as
+ transcontinental fast pipes)
+ <hr />
+
+ <h2><a id="startservers" name="startservers">StartServers
+ directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt StartServers} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> StartServers
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>StartServers
+ 5</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, prefork</p>
+
+ <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>
+
+ <p>See also <a href="#minsparethreads">MinSpareThreads</a> and
+ <a href="#maxsparethreads">MaxSpareThreads</a>.</p>
+ <hr />
+
+ <h2><a id="startthreads" name="startthreads">StartThreads
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> StartThreads
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>StartThreads
+ 5</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> perchild</p>
+
+ <p>Number of threads each child creates on startup. As the
+ number of threads is dynamically controlled depending on the
+ load, there is usually little reason to adjust this
+ parameter.</p>
+ <hr />
+
+ <h2><a id="threadsperchild"
+ name="threadsperchild">ThreadsPerChild</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ThreadsPerChild
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>ThreadsPerChild
+ 50</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, mpm_winnt</p>
+
+ <p>This directive sets the number of threads created by each
+ child process. The child creates these threads at startup and
+ never creates more. if using an MPM like mpmt_winnt, where
+ there is only one child process, this number should be high
+ enough to handle the entire load of the server. If using an MPM
+ like threaded, where there are multiple child processes, the
+ total number of threads should be high enough to handle the
+ common load on the server.</p>
+ <hr />
+
+ <h2><a id="user" name="user">User directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt User} directive&gt; -->
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> User
+ <em>unix-userid</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>User
+ #-1</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> core<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> threaded, perchild,
+ prefork</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</dt>
+
+ <dd>Refers to the given user by name.</dd>
+
+ <dt># followed by a user number.</dt>
+
+ <dd>Refers to a user by their number.</dd>
+ </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. For example mod_proxy's cache, when enabled, must be
+ accessible to this user (see <a
+ href="mod_proxy.html">mod_proxy's</a> <code>CacheRoot</code>
+ directive).
+
+ <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>
+
+ <p>Special note: Use of this directive in &lt;VirtualHost&gt;
+ is no longer supported. To configure your server for <a
+ href="mod_suexec.html">suexec</a> use <a
+ href="mod_suexec.html#suexecusergroup">SuexecUserGroup</a>.
+ 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>
+
+ <p><!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/mpm_winnt.html b/docs/manual/mod/mpm_winnt.html
index f4a90f03cf..7b8d24f5e7 100644
--- a/docs/manual/mod/mpm_winnt.html
+++ b/docs/manual/mod/mpm_winnt.html
@@ -1,59 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache MPM pthread</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Multi-Processing Module mpm_winnt</H1>
-<P>
-This Multi-Processing Module is optimized for Windows NT.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> MPM
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> mpm_winnt.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mpm_winnt_module
-</P>
-
-<H2>Summary</H2>
-
-<p>This Multi-Processing Module (MPM) is the default for
-the Windows NT operating systems. It uses a single control
-process which launches a single child process which in turn
-creates threads to handle requests</p>
-
-
-<H2>Directives</H2>
-<UL>
-<li><a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
-<li><a href="mpm_common.html#pidfile">PidFile</a></li>
-<li><a href="mpm_common.html#listen">Listen</a></li>
-<li><a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
-<li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
-<li><a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
-<li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
-</UL>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache MPM pthread</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Multi-Processing Module mpm_winnt</h1>
+
+ <p>This Multi-Processing Module is optimized for Windows
+ NT.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mpm_winnt.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mpm_winnt_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This Multi-Processing Module (MPM) is the default for the
+ Windows NT operating systems. It uses a single control process
+ which launches a single child process which in turn creates
+ threads to handle requests</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a
+ href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
+
+ <li><a href="mpm_common.html#pidfile">PidFile</a></li>
+
+ <li><a href="mpm_common.html#listen">Listen</a></li>
+
+ <li><a
+ href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
+
+ <li><a
+ href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
+
+ <li><a
+ href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
+
+ <li><a
+ href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
+ </ul>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/perchild.html b/docs/manual/mod/perchild.html
index 9c951d8605..2fca46d4be 100644
--- a/docs/manual/mod/perchild.html
+++ b/docs/manual/mod/perchild.html
@@ -1,170 +1,170 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache MPM perchild</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Multi-Processing Module perchild</H1>
-<P>
-This Multi-Processing Module allows for daemon processes serving requests
-to be assigned a variety of different userids.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> MPM
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> perchild.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mpm_perchild_module
-</P>
-
-<H2>Summary</H2>
-
-<p>This Multi-Processing Module (MPM) implements a hybrid
-multi-process, multi-threaded web server. A fixed number of processes
-create threads to handle requests. Fluctuations in load are handled
-by increasing or decreasing the number of threads in each process.</p>
-
-<p>A single control process launches the number of child processes
-indicated by the <code>NumServers</code> directive at server startup.
-Each child process creates threads as specified in the
-<code>StartThreads</code> directive. The individual threads then
-listen for connections and serve them when they arrive.</p>
-
-<p>Apache always tries to maintain a pool of <em>spare</em> or idle
-server threads, which stand ready to serve incoming requests. In this
-way, clients do not need to wait for new threads to be created. For
-each child process, Apache assesses the number of idle threads and
-creates or destroys threads to keep this number within the boundaries
-specified by <code>MinSpareThreads</code> and
-<code>MaxSpareThreads</code>. Since this process is very
-self-regulating, it is rarely necessary to modify these directives
-from their default values. The maximum number of clients that may be
-served simultaneously is determined by multiplying the number
-of server processes that will be created (<code>NumServers</code>) by
-the maximum number of threads created in each process
-(<code>MaxThreadsPerChild</code>).</p>
-
-<p>While the parent process is usually started as root under Unix in
-order to bind to port 80, the child processes and threads are launched
-by Apache as a less-privileged user. The <code>User</code> and
-<code>Group</code> directives are used to set the privileges of the
-Apache child processes. The child processes must be able to read all
-the content that will be served, but should have as few privileges
-beyond that as possible. In addition, unless <a
-href="../suexec.html">suexec</a> is used, these directives also set
-the privileges which will be inherited by CGI scripts.</p>
-
-<p><code>MaxRequestsPerChild</code> controls how frequently the server
-recycles processes by killing old ones and launching new ones.</p>
-
-<p>See also: <a href="../bind.html">Setting which addresses and ports
-Apache uses</a>.</p>
-
-<p>In addition it adds the extra ability to specify that specific processes
-should serve requests under different userids. These processes can
-then be associated with specific virtual hosts.</p>
-
-<!-- XXX: This desperately needs more explanation. -->
-
-
-<H2>Directives</H2>
-<UL>
-<li><a href="#assignuserid">AssignUserID</a></li>
-<li><a href="#childperuserid">ChildPerUserID</a></li>
-<li><a href="mpm_common.html#connectionstatus">ConnectionStatus</a></li>
-<li><a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
-<li><a href="mpm_common.html#group">Group</a></li>
-<li><a href="mpm_common.html#pidfile">PidFile</a></li>
-<li><a href="mpm_common.html#listen">Listen</a></li>
-<li><a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
-<li><a href="mpm_common.html#lockfile">LockFile</a></li>
-<li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
-<li><a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
-<li><a href="mpm_common.html#maxthreadsperchild">MaxThreadsPerChild</a></li>
-<li><a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
-<li><a href="mpm_common.html#numservers">NumServers</a></li>
-<li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
-<li><a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
-<li><a href="mpm_common.html#startthreads">StartThreads</a></li>
-<li><a href="mpm_common.html#user">User</a></li>
-</UL>
-
-<hr>
-
-<H2><A NAME="assignuserid">AssignUserID directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> perchild</p>
-
-<p>Tie a virtual host to a specific child process.</p>
-
-<hr>
-
-<H2><A NAME="childperuserid">ChildPerUserID directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> MPM<BR>
-<A
- HREF="directive-dict.html#Module"
- REL="Help"
-><STRONG>Module:</STRONG></A> perchild</p>
-
-<p>Specify a User and Group for a specific child process.</p>
-
-
-
-
-
-<!--#include virtual="footer.html" -->
-
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache MPM perchild</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Multi-Processing Module perchild</h1>
+
+ <p>This Multi-Processing Module allows for daemon processes
+ serving requests to be assigned a variety of different
+ userids.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> perchild.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mpm_perchild_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This Multi-Processing Module (MPM) implements a hybrid
+ multi-process, multi-threaded web server. A fixed number of
+ processes create threads to handle requests. Fluctuations in
+ load are handled by increasing or decreasing the number of
+ threads in each process.</p>
+
+ <p>A single control process launches the number of child
+ processes indicated by the <code>NumServers</code> directive at
+ server startup. Each child process creates threads as specified
+ in the <code>StartThreads</code> directive. The individual
+ threads then listen for connections and serve them when they
+ arrive.</p>
+
+ <p>Apache always tries to maintain a pool of <em>spare</em> or
+ idle server threads, which stand ready to serve incoming
+ requests. In this way, clients do not need to wait for new
+ threads to be created. For each child process, Apache assesses
+ the number of idle threads and creates or destroys threads to
+ keep this number within the boundaries specified by
+ <code>MinSpareThreads</code> and <code>MaxSpareThreads</code>.
+ Since this process is very self-regulating, it is rarely
+ necessary to modify these directives from their default values.
+ The maximum number of clients that may be served simultaneously
+ is determined by multiplying the number of server processes
+ that will be created (<code>NumServers</code>) by the maximum
+ number of threads created in each process
+ (<code>MaxThreadsPerChild</code>).</p>
+
+ <p>While the parent process is usually started as root under
+ Unix in order to bind to port 80, the child processes and
+ threads are launched by Apache as a less-privileged user. The
+ <code>User</code> and <code>Group</code> directives are used to
+ set the privileges of the Apache child processes. The child
+ processes must be able to read all the content that will be
+ served, but should have as few privileges beyond that as
+ possible. In addition, unless <a
+ href="../suexec.html">suexec</a> is used, these directives also
+ set the privileges which will be inherited by CGI scripts.</p>
+
+ <p><code>MaxRequestsPerChild</code> controls how frequently the
+ server recycles processes by killing old ones and launching new
+ ones.</p>
+
+ <p>See also: <a href="../bind.html">Setting which addresses and
+ ports Apache uses</a>.</p>
+
+ <p>In addition it adds the extra ability to specify that
+ specific processes should serve requests under different
+ userids. These processes can then be associated with specific
+ virtual hosts.</p>
+ <!-- XXX: This desperately needs more explanation. -->
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#assignuserid">AssignUserID</a></li>
+
+ <li><a href="#childperuserid">ChildPerUserID</a></li>
+
+ <li><a
+ href="mpm_common.html#connectionstatus">ConnectionStatus</a></li>
+
+ <li><a
+ href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
+
+ <li><a href="mpm_common.html#group">Group</a></li>
+
+ <li><a href="mpm_common.html#pidfile">PidFile</a></li>
+
+ <li><a href="mpm_common.html#listen">Listen</a></li>
+
+ <li><a
+ href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
+
+ <li><a href="mpm_common.html#lockfile">LockFile</a></li>
+
+ <li><a
+ href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
+
+ <li><a
+ href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
+
+ <li><a
+ href="mpm_common.html#maxthreadsperchild">MaxThreadsPerChild</a></li>
+
+ <li><a
+ href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
+
+ <li><a href="mpm_common.html#numservers">NumServers</a></li>
+
+ <li><a
+ href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
+
+ <li><a
+ href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
+
+ <li><a
+ href="mpm_common.html#startthreads">StartThreads</a></li>
+
+ <li><a href="mpm_common.html#user">User</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="assignuserid" name="assignuserid">AssignUserID
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> perchild</p>
+
+ <p>Tie a virtual host to a specific child process.</p>
+ <hr />
+
+ <h2><a id="childperuserid" name="childperuserid">ChildPerUserID
+ directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> perchild</p>
+
+ <p>Specify a User and Group for a specific child process.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+
diff --git a/docs/manual/mod/prefork.html b/docs/manual/mod/prefork.html
index eda56730d2..05b25c84d8 100644
--- a/docs/manual/mod/prefork.html
+++ b/docs/manual/mod/prefork.html
@@ -1,228 +1,230 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache MPM prefork</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Multi-Processing Module prefork</H1>
-<P>
-This Multi-Processing Module implements a non-threaded, pre-forking
-web server.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> MPM
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> prefork.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mpm_prefork_module
-</P>
-
-<H2>Summary</H2>
-
-<p>This Multi-Processing Module (MPM) implements a non-threaded,
-pre-forking web server which handles request in a manner very similar
-to the default behavior of Apache 1.3 on Unix.</p>
-
-<p>A single control process is responsible for launching child
-processes which listen for connections and serve them when they
-arrive. Apache always tries to maintain several <em>spare</em> or
-idle server processes, which stand ready to serve incoming requests.
-In this way, clients do not need to wait for a new child processes to
-be forked before their requests can be served.</p>
-
-<p>The <code>StartServers</code>, <code>MinSpareServers</code>,
-<code>MaxSpareServers</code>, and <code>MaxClients</code> regulate how
-the parent process creates children to serve requests. In general,
-Apache is very self-regulating, so most sites do not need to adjust
-these directives from their default values. Sites which need to serve
-more than 256 simultaneous requests may need to increase
-<code>MaxClients</code>, while sites with limited memory may need to
-decrease <code>MaxClients</code> to keep the server from thrashing
-(swapping memory to disk and back). More information about tuning
-process creation is provided in the <a
-href="../misc/perf-tuning.html">performance hints</a> documentation.</p>
-
-<p>While the parent process is usually started as root under Unix
-in order to bind to port 80, the child processes are launched
-by Apache as a less-privileged user. The <code>User</code> and
-<code>Group</code> directives are used to set the privileges
-of the Apache child processes. The child processes must
-be able to read all the content that will be served, but
-should have as few privileges beyond that as possible.
-In addition, unless <a href="../suexec.html">suexec</a> is used,
-these directives also set the privileges which will be inherited
-by CGI scripts.</p>
-
-<p><code>MaxRequestsPerChild</code> controls how frequently the server
-recycles processes by killing old ones and launching new ones.</p>
-
-<p>See also: <a href="../bind.html">Setting which addresses and ports
-Apache uses</a>.</p>
-
-<H2>Directives</H2>
-<UL>
-<li><a href="#acceptmutex">AcceptMutex</a>
-<li><a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
-<li><a href="mpm_common.html#group">Group</a></li>
-<li><a href="mpm_common.html#pidfile">PidFile</a></li>
-<li><a href="mpm_common.html#listen">Listen</a></li>
-<li><a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
-<li><a href="mpm_common.html#lockfile">LockFile</a></li>
-<li><a href="mpm_common.html#maxclients">MaxClients</a></li>
-<li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
-<li><a href="#maxspareservers">MaxSpareServers</a></li>
-<li><a href="#minspareservers">MinSpareServers</a></li>
-<li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
-<li><a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
-<li><a href="mpm_common.html#startservers">StartServers</a></li>
-<li><a href="mpm_common.html#user">User</a></li>
-</UL>
-
-<p><hr>
-
-
-<H2><A NAME="AcceptMutex">AcceptMutex Directive</A></H2>
-<p><A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> AcceptMutex default|<EM>method</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <code>AcceptMutex default</code><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> core</p>
-
-<p>The <code>AcceptMutex</code> directives sets the method that Apache
-uses to serialize multiple children accepting requests on network
-sockets. Prior to Apache 2.0, the method was selectable only at
-compile time. The optimal method to use is highly architecture and
-platform dependent. For further details, see the <a
-href="../misc/perf-tuning.html">performance tuning</a>
-documentation.</p>
-
-<p>If this directive is set to <code>default</code>, then the
-compile-time selected default will be used. Other possible
-methods are listed below. Note that not all methods are available
-on all platforms. If a method is specified which is not available,
-a message will be written to the error log listing the available
-methods.</p>
-
-<dl>
-
-<dt><code>flock</code></dt>
-<dd>uses the <code>flock(2)</code> system call to lock the
-file defined by the <a href="mpm_common.html#lockfile">LockFile</a>
-directive.</dd>
-
-<dt><code>fcntl</code></dt>
-<dd>uses the <code>fnctl(2)</code> system call to lock the
-file defined by the <a href="mpm_common.html#lockfile">LockFile</a>
-directive.</dd>
-
-<dt><code>sysvsem</code></dt>
-<dd>uses SySV-style semaphores to implement the mutex.</dd>
-
-<dt><code>proc_pthread</code></dt>
-<dd>uses POSIX mutexes as implemented by the POSIX Threads (PThreads)
-specification.</dd>
-
-</dl>
-
-<hr>
-
-<H2><A NAME="maxspareservers">MaxSpareServers directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MaxSpareServers} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MaxSpareServers <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MaxSpareServers 10</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> 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>
-
-<P>
-
-See also <A HREF="#minspareservers">MinSpareServers</A> and
-<A HREF="mpm_common.html#startservers">StartServers</A>.<P><HR>
-
-<H2><A NAME="minspareservers">MinSpareServers directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
-<A
- HREF="directive-dict.html#Syntax"
- REL="Help"
-><STRONG>Syntax:</STRONG></A> MinSpareServers <EM>number</EM><BR>
-<A
- HREF="directive-dict.html#Default"
- REL="Help"
-><STRONG>Default:</STRONG></A> <CODE>MinSpareServers 5</CODE><BR>
-<A
- HREF="directive-dict.html#Context"
- REL="Help"
-><STRONG>Context:</STRONG></A> server config<BR>
-<A
- HREF="directive-dict.html#Status"
- REL="Help"
-><STRONG>Status:</STRONG></A> 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>
-
-This directive has no effect on Microsoft Windows.
-
-<P>
-
-See also <A HREF="#maxspareservers">MaxSpareServers</A> and
-<A HREF="mpm_common.html#startservers">StartServers</A>.
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache MPM prefork</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Multi-Processing Module prefork</h1>
+
+ <p>This Multi-Processing Module implements a non-threaded,
+ pre-forking web server.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> prefork.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mpm_prefork_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This Multi-Processing Module (MPM) implements a
+ non-threaded, pre-forking web server which handles request in a
+ manner very similar to the default behavior of Apache 1.3 on
+ Unix.</p>
+
+ <p>A single control process is responsible for launching child
+ processes which listen for connections and serve them when they
+ arrive. Apache always tries to maintain several <em>spare</em>
+ or idle server processes, which stand ready to serve incoming
+ requests. In this way, clients do not need to wait for a new
+ child processes to be forked before their requests can be
+ served.</p>
+
+ <p>The <code>StartServers</code>, <code>MinSpareServers</code>,
+ <code>MaxSpareServers</code>, and <code>MaxClients</code>
+ regulate how the parent process creates children to serve
+ requests. In general, Apache is very self-regulating, so most
+ sites do not need to adjust these directives from their default
+ values. Sites which need to serve more than 256 simultaneous
+ requests may need to increase <code>MaxClients</code>, while
+ sites with limited memory may need to decrease
+ <code>MaxClients</code> to keep the server from thrashing
+ (swapping memory to disk and back). More information about
+ tuning process creation is provided in the <a
+ href="../misc/perf-tuning.html">performance hints</a>
+ documentation.</p>
+
+ <p>While the parent process is usually started as root under
+ Unix in order to bind to port 80, the child processes are
+ launched by Apache as a less-privileged user. The
+ <code>User</code> and <code>Group</code> directives are used to
+ set the privileges of the Apache child processes. The child
+ processes must be able to read all the content that will be
+ served, but should have as few privileges beyond that as
+ possible. In addition, unless <a
+ href="../suexec.html">suexec</a> is used, these directives also
+ set the privileges which will be inherited by CGI scripts.</p>
+
+ <p><code>MaxRequestsPerChild</code> controls how frequently the
+ server recycles processes by killing old ones and launching new
+ ones.</p>
+
+ <p>See also: <a href="../bind.html">Setting which addresses and
+ ports Apache uses</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#acceptmutex">AcceptMutex</a></li>
+
+ <li><a
+ href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
+
+ <li><a href="mpm_common.html#group">Group</a></li>
+
+ <li><a href="mpm_common.html#pidfile">PidFile</a></li>
+
+ <li><a href="mpm_common.html#listen">Listen</a></li>
+
+ <li><a
+ href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
+
+ <li><a href="mpm_common.html#lockfile">LockFile</a></li>
+
+ <li><a href="mpm_common.html#maxclients">MaxClients</a></li>
+
+ <li><a
+ href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
+
+ <li><a href="#maxspareservers">MaxSpareServers</a></li>
+
+ <li><a href="#minspareservers">MinSpareServers</a></li>
+
+ <li><a
+ href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
+
+ <li><a
+ href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
+
+ <li><a
+ href="mpm_common.html#startservers">StartServers</a></li>
+
+ <li><a href="mpm_common.html#user">User</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="AcceptMutex" name="AcceptMutex">AcceptMutex
+ Directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AcceptMutex
+ default|<em>method</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>AcceptMutex
+ default</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> core</p>
+
+ <p>The <code>AcceptMutex</code> directives sets the method that
+ Apache uses to serialize multiple children accepting requests
+ on network sockets. Prior to Apache 2.0, the method was
+ selectable only at compile time. The optimal method to use is
+ highly architecture and platform dependent. For further
+ details, see the <a href="../misc/perf-tuning.html">performance
+ tuning</a> documentation.</p>
+
+ <p>If this directive is set to <code>default</code>, then the
+ compile-time selected default will be used. Other possible
+ methods are listed below. Note that not all methods are
+ available on all platforms. If a method is specified which is
+ not available, a message will be written to the error log
+ listing the available methods.</p>
+
+ <dl>
+ <dt><code>flock</code></dt>
+
+ <dd>uses the <code>flock(2)</code> system call to lock the
+ file defined by the <a
+ href="mpm_common.html#lockfile">LockFile</a> directive.</dd>
+
+ <dt><code>fcntl</code></dt>
+
+ <dd>uses the <code>fnctl(2)</code> system call to lock the
+ file defined by the <a
+ href="mpm_common.html#lockfile">LockFile</a> directive.</dd>
+
+ <dt><code>sysvsem</code></dt>
+
+ <dd>uses SySV-style semaphores to implement the mutex.</dd>
+
+ <dt><code>proc_pthread</code></dt>
+
+ <dd>uses POSIX mutexes as implemented by the POSIX Threads
+ (PThreads) specification.</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="maxspareservers"
+ name="maxspareservers">MaxSpareServers directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt MaxSpareServers} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MaxSpareServers
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MaxSpareServers
+ 10</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> 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>
+
+ <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>
+
+ <p>See also <a href="#minspareservers">MinSpareServers</a> and
+ <a href="mpm_common.html#startservers">StartServers</a>.</p>
+ <hr />
+
+ <h2><a id="minspareservers"
+ name="minspareservers">MinSpareServers directive</a></h2>
+ <!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> MinSpareServers
+ <em>number</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>MinSpareServers
+ 5</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> 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>
+
+ <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>
+
+ <p>This directive has no effect on Microsoft Windows.</p>
+
+ <p>See also <a href="#maxspareservers">MaxSpareServers</a> and
+ <a href="mpm_common.html#startservers">StartServers</a>.
+ <!--#include virtual="footer.html" -->
+ </p>
+ </body>
+</html>
+
diff --git a/docs/manual/mod/threaded.html b/docs/manual/mod/threaded.html
index 0d00ff7cab..434cd40e53 100644
--- a/docs/manual/mod/threaded.html
+++ b/docs/manual/mod/threaded.html
@@ -1,105 +1,121 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Apache MPM threaded</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
-<!--#include virtual="header.html" -->
-
-<H1 ALIGN="CENTER">Multi-Processing Module threaded</H1>
-<P>
-This Multi-Processing Module implements a hybrid multi-threaded
-multi-process web server.
-</P>
-
-<P><A
-HREF="module-dict.html#Status"
-REL="Help"
-><STRONG>Status:</STRONG></A> MPM
-<BR>
-<A
-HREF="module-dict.html#SourceFile"
-REL="Help"
-><STRONG>Source File:</STRONG></A> threaded.c
-<BR>
-<A
-HREF="module-dict.html#ModuleIdentifier"
-REL="Help"
-><STRONG>Module Identifier:</STRONG></A> mpm_threaded_module
-</P>
-
-<H2>Summary</H2>
-
-<p>This Multi-Processing Module (MPM) is the default for most unix-like
-operating systems. It implements a hybrid
-multi-process multi-threaded server. Each process has a fixed number
-of threads. The server adjusts to handle load by increasing or
-decreasing the number of processes.</p>
-
-<p>A single control process is responsible for launching child
-processes. Each child process creates a fixed number of threads as
-specified in the <code>ThreadsPerChild</code> directive.
-The individual threads then listen for connections and
-serve them when they arrive.</p>
-
-<p>Apache always tries to maintain a pool of <em>spare</em> or idle
-server threads, which stand ready to serve incoming requests. In this
-way, clients do not need to wait for a new threads or processes to be
-created before their requests can be served. Apache assesses the
-total number of idle threads in all processes, and forks or kills
-processes to keep this number within the boundaries specified by
-<code>MinSpareThreads</code> and <code>MaxSpareThreads</code>.
-Since this process is very self-regulating, it is rarely necessary to
-modify these directives from their default values. The maximum
-number of clients that may be served simultaneously is determined
-by multiplying the maximum number of server processes that
-will be created (<code>MaxClients</code>) by the number of threads
-created in each process (<code>ThreadsPerChild</code>).</p>
-
-<p>While the parent process is usually started as root under Unix in
-order to bind to port 80, the child processes and threads are launched
-by Apache as a less-privileged user. The <code>User</code> and
-<code>Group</code> directives are used to set the privileges of the
-Apache child processes. The child processes must be able to read all
-the content that will be served, but should have as few privileges
-beyond that as possible. In addition, unless <a
-href="../suexec.html">suexec</a> is used, these directives also set
-the privileges which will be inherited by CGI scripts.</p>
-
-<p><code>MaxRequestsPerChild</code> controls how frequently the server
-recycles processes by killing old ones and launching new ones.</p>
-
-<p>See also: <a href="../bind.html">Setting which addresses and ports
-Apache uses</a>.</p>
-
-
-<H2>Directives</H2>
-<UL>
-<li><a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
-<li><a href="mpm_common.html#group">Group</a></li>
-<li><a href="mpm_common.html#pidfile">PidFile</a></li>
-<li><a href="mpm_common.html#listen">Listen</a></li>
-<li><a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
-<li><a href="mpm_common.html#lockfile">LockFile</a></li>
-<li><a href="mpm_common.html#maxclients">MaxClients</a></li>
-<li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
-<li><a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
-<li><a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
-<li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
-<li><a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
-<li><a href="mpm_common.html#startservers">StartServers</a></li>
-<li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
-<li><a href="mpm_common.html#user">User</a></li>
-</UL>
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache MPM threaded</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Multi-Processing Module threaded</h1>
+
+ <p>This Multi-Processing Module implements a hybrid
+ multi-threaded multi-process web server.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> MPM<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> threaded.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ mpm_threaded_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This Multi-Processing Module (MPM) is the default for most
+ unix-like operating systems. It implements a hybrid
+ multi-process multi-threaded server. Each process has a fixed
+ number of threads. The server adjusts to handle load by
+ increasing or decreasing the number of processes.</p>
+
+ <p>A single control process is responsible for launching child
+ processes. Each child process creates a fixed number of threads
+ as specified in the <code>ThreadsPerChild</code> directive. The
+ individual threads then listen for connections and serve them
+ when they arrive.</p>
+
+ <p>Apache always tries to maintain a pool of <em>spare</em> or
+ idle server threads, which stand ready to serve incoming
+ requests. In this way, clients do not need to wait for a new
+ threads or processes to be created before their requests can be
+ served. Apache assesses the total number of idle threads in all
+ processes, and forks or kills processes to keep this number
+ within the boundaries specified by <code>MinSpareThreads</code>
+ and <code>MaxSpareThreads</code>. Since this process is very
+ self-regulating, it is rarely necessary to modify these
+ directives from their default values. The maximum number of
+ clients that may be served simultaneously is determined by
+ multiplying the maximum number of server processes that will be
+ created (<code>MaxClients</code>) by the number of threads
+ created in each process (<code>ThreadsPerChild</code>).</p>
+
+ <p>While the parent process is usually started as root under
+ Unix in order to bind to port 80, the child processes and
+ threads are launched by Apache as a less-privileged user. The
+ <code>User</code> and <code>Group</code> directives are used to
+ set the privileges of the Apache child processes. The child
+ processes must be able to read all the content that will be
+ served, but should have as few privileges beyond that as
+ possible. In addition, unless <a
+ href="../suexec.html">suexec</a> is used, these directives also
+ set the privileges which will be inherited by CGI scripts.</p>
+
+ <p><code>MaxRequestsPerChild</code> controls how frequently the
+ server recycles processes by killing old ones and launching new
+ ones.</p>
+
+ <p>See also: <a href="../bind.html">Setting which addresses and
+ ports Apache uses</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a
+ href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
+
+ <li><a href="mpm_common.html#group">Group</a></li>
+
+ <li><a href="mpm_common.html#pidfile">PidFile</a></li>
+
+ <li><a href="mpm_common.html#listen">Listen</a></li>
+
+ <li><a
+ href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
+
+ <li><a href="mpm_common.html#lockfile">LockFile</a></li>
+
+ <li><a href="mpm_common.html#maxclients">MaxClients</a></li>
+
+ <li><a
+ href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
+
+ <li><a
+ href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
+
+ <li><a
+ href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
+
+ <li><a
+ href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
+
+ <li><a
+ href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
+
+ <li><a
+ href="mpm_common.html#startservers">StartServers</a></li>
+
+ <li><a
+ href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
+
+ <li><a href="mpm_common.html#user">User</a></li>
+ </ul>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+