]> granicus.if.org Git - apache/blobdiff - docs/manual/mod/core.html.en
Fix cut'n'paste error: ErrorLog -> ErrorLogFormat
[apache] / docs / manual / mod / core.html.en
index 8c3d7865c89a1ea98e0cd98a57e735312e41e1df..620072afd75353ea098057cf9801f83c7c16c8ee 100644 (file)
@@ -23,6 +23,8 @@
 <div class="toplang">
 <p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/core.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/core.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/core.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
@@ -36,9 +38,9 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#acceptpathinfo">AcceptPathInfo</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#accessfilename">AccessFileName</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#adddefaultcharset">AddDefaultCharset</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#addoutputfilterbytype">AddOutputFilterByType</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#allowencodedslashes">AllowEncodedSlashes</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#allowoverride">AllowOverride</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#allowoverridelist">AllowOverrideList</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cgimapextension">CGIMapExtension</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#contentdigest">ContentDigest</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#defaulttype">DefaultType</a></li>
@@ -46,14 +48,20 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#directory">&lt;Directory&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#directorymatch">&lt;DirectoryMatch&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#documentroot">DocumentRoot</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#else">&lt;Else&gt;</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#elseif">&lt;ElseIf&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#enablemmap">EnableMMAP</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#enablesendfile">EnableSendfile</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#error">Error</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#errordocument">ErrorDocument</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#errorlog">ErrorLog</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#errorlogformat">ErrorLogFormat</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#extendedstatus">ExtendedStatus</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#fileetag">FileETag</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#files">&lt;Files&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#filesmatch">&lt;FilesMatch&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#forcetype">ForceType</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#gprofdir">GprofDir</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#hostnamelookups">HostnameLookups</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#if">&lt;If&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ifdefine">&lt;IfDefine&gt;</a></li>
@@ -73,12 +81,18 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#locationmatch">&lt;LocationMatch&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#loglevel">LogLevel</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#maxrangeoverlaps">MaxRangeOverlaps</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#maxrangereversals">MaxRangeReversals</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#maxranges">MaxRanges</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#mutex">Mutex</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#namevirtualhost">NameVirtualHost</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#protocol">Protocol</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rlimitcpu">RLimitCPU</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rlimitmem">RLimitMEM</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rlimitnproc">RLimitNPROC</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptinterpretersource">ScriptInterpreterSource</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#seerequesttail">SeeRequestTail</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#serveradmin">ServerAdmin</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#serveralias">ServerAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#servername">ServerName</a></li>
@@ -91,6 +105,7 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#undefine">UnDefine</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
@@ -105,27 +120,40 @@ available</td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1.5 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.1.5 and later.
+On Windows from Apache httpd 2.3.3 and later.</td></tr>
 </table>
-    <p>This directive enables operating system specific optimizations for a 
-       listening socket by the Protocol type. The basic premise is for the 
-       kernel to not send a socket to the server process until either data 
-       is received or an entire HTTP Request is buffered. Only
-       <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&amp;sektion=9">
-       FreeBSD's Accept Filters</a> and Linux's more primitive 
-       <code>TCP_DEFER_ACCEPT</code> are currently supported.</p>
+    <p>This directive enables operating system specific optimizations for a
+       listening socket by the <code class="directive">Protocol</code>type.
+       The basic premise is for the kernel to not send a socket to the server
+       process until either data is received or an entire HTTP Request is buffered.
+       Only <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&amp;sektion=9">
+       FreeBSD's Accept Filters</a>, Linux's more primitive
+       <code>TCP_DEFER_ACCEPT</code>, and Windows' optimized AcceptEx()
+       are currently supported.</p>
+
+    <p>Using <code>none</code> for an argument will disable any accept filters
+       for that protocol.  This is useful for protocols that require a server
+       send data first, such as <code>ftp:</code> or <code>nntp</code>:</p>
+    <div class="example"><p><code>AcceptFilter nntp none</code></p></div>
+
+    <p>The default protocol names are <code>https</code> for port 443
+       and <code>http</code> for all other ports.  To specify another protocol
+       is being used with a listening port, add the <var>protocol</var>
+       argument to the <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>
+       directive.</p>
 
     <p>The default values on FreeBSD are:</p>
     <div class="example"><p><code>
         AcceptFilter http httpready <br />
         AcceptFilter https dataready
     </code></p></div>
-    
+
     <p>The <code>httpready</code> accept filter buffers entire HTTP requests at
-       the kernel level.  Once an entire request is received, the kernel then 
-       sends it to the server. See the 
+       the kernel level.  Once an entire request is received, the kernel then
+       sends it to the server. See the
        <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&amp;sektion=9">
-       accf_http(9)</a> man page for more details.  Since HTTPS requests are 
+       accf_http(9)</a> man page for more details.  Since HTTPS requests are
        encrypted only the <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&amp;sektion=9">
        accf_data(9)</a> filter is used.</p>
 
@@ -136,18 +164,40 @@ available</td></tr>
     </code></p></div>
 
     <p>Linux's <code>TCP_DEFER_ACCEPT</code> does not support buffering http
-       requests.  Any value besides <code>none</code> will enable 
+       requests.  Any value besides <code>none</code> will enable
        <code>TCP_DEFER_ACCEPT</code> on that listener. For more details
-       see the Linux 
+       see the Linux
        <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">
        tcp(7)</a> man page.</p>
 
-    <p>Using <code>none</code> for an argument will disable any accept filters 
-       for that protocol.  This is useful for protocols that require a server
-       send data first, such as <code>nntp</code>:</p>
-    <div class="example"><p><code>AcceptFilter nntp none</code></p></div>
+    <p>The default values on Windows are:</p>
+    <div class="example"><p><code>
+        AcceptFilter http data <br />
+        AcceptFilter https data
+    </code></p></div>
+
+    <p>Window's mpm_winnt interprets the AcceptFilter to toggle the AcceptEx()
+       API, and does not support http protocol buffering.  There are two values
+       which utilize the Windows AcceptEx() API and will recycle network
+       sockets between connections.  <code>data</code> waits until data has
+       been transmitted as documented above, and the initial data buffer and
+       network endpoint addresses are all retrieved from the single AcceptEx()
+       invocation.  <code>connect</code> will use the AcceptEx() API, also
+       retrieve the network endpoint addresses, but like <code>none</code>
+       the <code>connect</code> option does not wait for the initial data
+       transmission.</p>
 
+    <p>On Windows, <code>none</code> uses accept() rather than AcceptEx()
+       and will not recycle sockets between connections.  This is useful for
+       network adapters with broken driver support, as well as some virtual
+       network providers such as vpn drivers, or spam, virus or spyware
+       filters.</p>
 
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive">Protocol</code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a> <a name="acceptpathinfo" id="acceptpathinfo">Directive</a></h2>
@@ -159,7 +209,7 @@ available</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.30 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.0.30 and later</td></tr>
 </table>
 
     <p>This directive controls whether requests that contain trailing
@@ -306,95 +356,39 @@ content-type is <code>text/plain</code> or <code>text/html</code></td></tr>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a> <a name="addoutputfilterbytype" id="addoutputfilterbytype">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>assigns an output filter to a particular media-type</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddOutputFilterByType <var>filter</var>[;<var>filter</var>...]
-<var>media-type</var> [<var>media-type</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.33 and later; deprecated in Apache 2.1 and later</td></tr>
-</table>
-    <p>This directive activates a particular output <a href="../filter.html">filter</a> for a request depending on the
-    response <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a>.  Because of certain
-    problems discussed below, this directive is deprecated.  The same
-    functionality is available using <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>.</p>
-
-    <p>The following example uses the <code>DEFLATE</code> filter, which
-    is provided by <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>. It will compress all
-    output (either static or dynamic) which is labeled as
-    <code>text/html</code> or <code>text/plain</code> before it is sent
-    to the client.</p>
-
-    <div class="example"><p><code>
-      AddOutputFilterByType DEFLATE text/html text/plain
-    </code></p></div>
-
-    <p>If you want the content to be processed by more than one filter, their
-    names have to be separated by semicolons. It's also possible to use one
-    <code class="directive">AddOutputFilterByType</code> directive for each of
-    these filters.</p>
-
-    <p>The configuration below causes all script output labeled as
-    <code>text/html</code> to be processed at first by the
-    <code>INCLUDES</code> filter and then by the <code>DEFLATE</code>
-    filter.</p>
-
-    <div class="example"><p><code>
-    &lt;Location /cgi-bin/&gt;<br />
-    <span class="indent">
-      Options Includes<br />
-      AddOutputFilterByType INCLUDES;DEFLATE text/html<br />
-    </span>
-    &lt;/Location&gt;
-    </code></p></div>
-
-    <div class="warning"><h3>Note</h3>
-      <p>Enabling filters with <code class="directive">AddOutputFilterByType</code>
-      may fail partially or completely in some cases. For example, no
-      filters are applied if the <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a> could not
-      be determined.  If you want to make sure that the filters will be
-      applied, assign the content type to a resource explicitly; for
-      example, with <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> or
-      <code class="directive"><a href="#forcetype">ForceType</a></code>. Setting the
-      content type within a (non-nph) CGI script is also safe.</p>
-
-    </div>
-
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li>
-<li><code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code></li>
-<li><a href="../filter.html">filters</a></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AllowEncodedSlashes" id="AllowEncodedSlashes">AllowEncodedSlashes</a> <a name="allowencodedslashes" id="allowencodedslashes">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether encoded path separators in URLs are allowed to
 be passed through</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowEncodedSlashes On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowEncodedSlashes On|Off|NoDecode</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowEncodedSlashes Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.46 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.0.46 and later.
+NoDecode option available in 2.3.12 and later.</td></tr>
 </table>
     <p>The <code class="directive">AllowEncodedSlashes</code> directive allows URLs
     which contain encoded path separators (<code>%2F</code> for <code>/</code>
     and additionally <code>%5C</code> for <code>\</code> on according systems)
-    to be used. Normally such URLs are refused with a 404 (Not found) error.</p>
+    to be used in the path info.</p>
+
+    <p>With the default value, <code>Off</code>, such URLs are refused
+    with a 404 (Not found) error.</p>
+
+    <p>With the value <code>On</code>, such URLs are accepted, and encoded
+      slashes are decoded like all other encoded characters.</p>
+
+    <p>With the value <code>NoDecode</code>, such URLs are accepted, but
+      encoded slashes are not decoded but left in their encoded state.</p>
 
     <p>Turning <code class="directive">AllowEncodedSlashes</code> <code>On</code> is
     mostly useful when used in conjunction with <code>PATH_INFO</code>.</p>
 
     <div class="note"><h3>Note</h3>
-      <p>Allowing encoded slashes does <em>not</em> imply <em>decoding</em>.
-      Occurrences of <code>%2F</code> or <code>%5C</code> (<em>only</em> on
-      according systems) will be left as such in the otherwise decoded URL
-      string.</p>
+      <p>If encoded slashes are needed in path info, use of <code>NoDecode</code> is
+      strongly recommended as a security measure.  Allowing slashes
+      to be decoded could potentially allow unsafe paths.</p>
     </div>
 
 <h3>See also</h3>
@@ -409,7 +403,7 @@ be passed through</td></tr>
 <code>.htaccess</code> files</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowOverride All|None|<var>directive-type</var>
 [<var>directive-type</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowOverride All</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowOverride None (2.3.9 and later), AllowOverride All (2.3.8 and earlier)</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
@@ -426,10 +420,10 @@ be passed through</td></tr>
     <code class="directive"><a href="#files">&lt;Files&gt;</a></code> sections.
     </div>
 
-    <p>When this directive is set to <code>None</code>, then
-    <a href="#accessfilename">.htaccess</a> files are completely ignored.
-    In this case, the server will not even attempt to read
-    <code>.htaccess</code> files in the filesystem.</p>
+    <p>When this directive is set to <code>None</code> and <code class="directive"><a href="#allowoverridelist">AllowOverrideList</a></code> is set to
+    <code>None</code> <a href="#accessfilename">.htaccess</a> files are
+    completely ignored. In this case, the server will not even attempt
+    to read <code>.htaccess</code> files in the filesystem.</p>
 
     <p>When this directive is set to <code>All</code>, then any
     directive which has the .htaccess <a href="directive-dict.html#Context">Context</a> is allowed in
@@ -488,7 +482,16 @@ be passed through</td></tr>
       features (<code class="directive"><a href="#options">Options</a></code> and
       <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>).
       An equal sign may be given followed by a comma (but no spaces)
-      separated lists of options that may be set using the <code class="directive"><a href="#options">Options</a></code> command.</dd>
+      separated lists of options that may be set using the <code class="directive"><a href="#options">Options</a></code> command.
+
+      <div class="note"><h3>Implicit disabling of Options</h3>
+      <p>Even though the list of options that may be used in .htaccess files
+         can be limited with this directive, as long as any <code class="directive"><a href="#options">Options</a></code> directive is allowed any
+         other inherited option can be disabled by using the non-relative
+         syntax.  In other words, this mechanism cannot force a specific option
+         to remain <em>set</em> while allowing any others to be set.
+      </p></div>
+      </dd>
     </dl>
 
     <p>Example:</p>
@@ -502,7 +505,7 @@ be passed through</td></tr>
     server error.</p>
 
     <div class="note"><p>For security and performance reasons, do not set
-    <code>AllowOverride</code> to anything other than <code>None</code> 
+    <code>AllowOverride</code> to anything other than <code>None</code>
     in your <code>&lt;Directory /&gt;</code> block. Instead, find (or
     create) the <code>&lt;Directory&gt;</code> block that refers to the
     directory where you're actually planning to place a
@@ -512,6 +515,68 @@ be passed through</td></tr>
 <h3>See also</h3>
 <ul>
 <li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li>
+<li><code class="directive"><a href="#allowoverridelist">AllowOverrideList</a></code></li>
+<li><a href="../configuring.html">Configuration Files</a></li>
+<li><a href="../howto/htaccess.html">.htaccess Files</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AllowOverrideList" id="AllowOverrideList">AllowOverrideList</a> <a name="allowoverridelist" id="allowoverridelist">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Individual directives that are allowed in
+<code>.htaccess</code> files</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowOverrideList None|<var>directive</var>
+[<var>directive-type</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowOverrideList None</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>When the server finds an <code>.htaccess</code> file (as
+    specified by <code class="directive"><a href="#accessfilename">AccessFileName</a></code>)
+    it needs to know which directives declared in that file can override
+    earlier configuration directives.</p>
+
+    <div class="note"><h3>Only available in &lt;Directory&gt; sections</h3>
+    <code class="directive">AllowOverrideList</code> is valid only in
+    <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>
+    sections specified without regular expressions, not in <code class="directive"><a href="#location">&lt;Location&gt;</a></code>, <code class="directive"><a href="#directorymatch">&lt;DirectoryMatch&gt;</a></code> or
+    <code class="directive"><a href="#files">&lt;Files&gt;</a></code> sections.
+    </div>
+
+    <p>When this directive is set to <code>None</code> and <code class="directive"><a href="#allowoverride">AllowOverride</a></code> is set to <code>None</code>,
+    then <a href="#accessfilename">.htaccess</a> files are completely
+    ignored.  In this case, the server will not even attempt to read
+    <code>.htaccess</code> files in the filesystem.</p>
+
+    <p>Example:</p>
+
+    <div class="example"><p><code>
+      AllowOverride None
+      AllowOverrideList Redirect RedirectMatch
+    </code></p></div>
+
+    <p>In the example above only the <code>Redirect</code> and
+    <code>RedirectMatch</code> directives are allowed. All others will
+    cause an internal server error.</p>
+
+    <p>Example:</p>
+
+    <div class="example"><p><code>
+      AllowOverride AuthConfig
+      AllowOverrideList CookieTracking CookieName
+    </code></p></div>
+
+    <p>In the example above <code class="directive"><a href="#allowoverride&#10;    ">AllowOverride
+    </a></code> grants permission to the <code>AuthConfig</code>
+    directive grouping and <code class="directive">AllowOverrideList</code> grants
+    permission to only two directves from the <code>FileInfo</code> directive
+    grouping. All others will cause an internal server error.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li>
+<li><code class="directive"><a href="#allowoverride">AllowOverride</a></code></li>
 <li><a href="../configuring.html">Configuration Files</a></li>
 <li><a href="../howto/htaccess.html">.htaccess Files</a></li>
 </ul>
@@ -528,7 +593,7 @@ scripts</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>NetWare only</td></tr>
 </table>
-    <p>This directive is used to control how Apache finds the
+    <p>This directive is used to control how Apache httpd finds the
     interpreter used to run CGI scripts. For example, setting
     <code>CGIMapExtension sys:\foo.nlm .foo</code> will
     cause all CGI script files with a <code>.foo</code> extension to
@@ -589,7 +654,7 @@ which no other media type configuration could be found.
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The argument <code>none</code> is available in Apache 2.2.7 and later.  All other choices are DISABLED for 2.3.x and later.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The argument <code>none</code> is available in Apache httpd 2.2.7 and later.  All other choices are DISABLED for 2.3.x and later.</td></tr>
 </table>
     <p>This directive has been disabled.  For backwards compatibility
     of configuration files, it may be specified with the value
@@ -614,22 +679,43 @@ which no other media type configuration could be found.
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Define" id="Define">Define</a> <a name="define" id="define">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define the existence of a variable</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Define <var>parameter-name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a variable</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Define <var>parameter-name</var> [<var>parameter-value</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
-    <p>Equivalent to passing the <code>-D</code> argument to <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>
-    <p>This directive can be used to toggle the use of <code class="directive"><a href="#ifdefine">&lt;IfDefine&gt;</a></code> sections without needing to alter
-    <code>-D</code> arguments in any startup scripts.</p>
+    <p>In its one parameter form, <code class="directive">Define</code> is equivalent
+    to passing the <code>-D</code> argument to <code class="program"><a href="../programs/httpd.html">httpd</a></code>. It
+    can be used to toggle the use of
+    <code class="directive"><a href="#ifdefine">&lt;IfDefine&gt;</a></code> sections
+    without needing to alter <code>-D</code> arguments in any startup
+    scripts.</p>
+
+    <p>In addition to that, if the second parameter is given, a config variable
+    is set to this value. The variable can be used in the configuration using
+    the <code>${VAR}</code> syntax. The variable is always globally defined
+    and not limited to the scope of the surrounding config section.</p>
+
+    <div class="example"><p><code>
+      &lt;IfDefine TEST&gt;<br />
+      &nbsp;&nbsp;Define servername test.example.com<br />
+      &lt;/IfDefine&gt;<br />
+      &lt;IfDefine !TEST&gt;<br />
+      &nbsp;&nbsp;Define servername www.example.com<br />
+      &nbsp;&nbsp;Define SSL<br />
+      &lt;/IfDefine&gt;<br />
+    </code></p></div>
+
+    <p>Variable names may not contain colon ":" characters, to avoid clashes
+    with <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>'s syntax.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Directory" id="Directory">&lt;Directory&gt;</a> <a name="directory" id="directory">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enclose a group of directives that apply only to the
-named file-system directory and sub-directories</td></tr>
+named file-system directory, sub-directories, and their contents.</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;Directory <var>directory-path</var>&gt;
 ... &lt;/Directory&gt;</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
@@ -638,8 +724,9 @@ named file-system directory and sub-directories</td></tr>
 </table>
     <p><code class="directive">&lt;Directory&gt;</code> and
     <code>&lt;/Directory&gt;</code> are used to enclose a group of
-    directives that will apply only to the named directory and
-    sub-directories of that directory. Any directive that is allowed
+    directives that will apply only to the named directory,
+    sub-directories of that directory, and the files within the respective
+    directories.  Any directive that is allowed
     in a directory context may be used. <var>Directory-path</var> is
     either the full path to a directory, or a wild-card string using
     Unix shell-style matching. In a wild-card string, <code>?</code> matches
@@ -660,7 +747,7 @@ named file-system directory and sub-directories</td></tr>
 
     <div class="note">
       <p>Be careful with the <var>directory-path</var> arguments:
-      They have to literally match the filesystem path which Apache uses
+      They have to literally match the filesystem path which Apache httpd uses
       to access the files. Directives applied to a particular
       <code>&lt;Directory&gt;</code> will not apply to files accessed from
       that same directory via a different path, such as via different symbolic
@@ -691,7 +778,7 @@ named file-system directory and sub-directories</td></tr>
       </span>
       &lt;/Directory&gt;<br />
       <br />
-      &lt;Directory /home/&gt;<br />
+      &lt;Directory /home&gt;<br />
       <span class="indent">
         AllowOverride FileInfo<br />
       </span>
@@ -733,17 +820,16 @@ named file-system directory and sub-directories</td></tr>
     the corresponding <code class="directive">&lt;Directory&gt;</code> will
     be applied.</p>
 
-   <p><strong>Note that the default Apache access for
-    <code>&lt;Directory /&gt;</code> is <code>Allow from All</code>.
-    This means that Apache will serve any file mapped from an URL. It is
+   <p><strong>Note that the default access for
+    <code>&lt;Directory /&gt;</code> is to permit all access.
+    This means that Apache httpd will serve any file mapped from an URL. It is
     recommended that you change this with a block such
     as</strong></p>
 
     <div class="example"><p><code>
       &lt;Directory /&gt;<br />
       <span class="indent">
-        Order Deny,Allow<br />
-        Deny from All<br />
+        Require all denied<br />
       </span>
       &lt;/Directory&gt;
     </code></p></div>
@@ -768,8 +854,7 @@ named file-system directory and sub-directories</td></tr>
 <div class="directive-section"><h2><a name="DirectoryMatch" id="DirectoryMatch">&lt;DirectoryMatch&gt;</a> <a name="directorymatch" id="directorymatch">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enclose directives that apply to
-file-system directories matching a regular expression and their
-subdirectories</td></tr>
+the contents of file-system directories matching a regular expression.</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;DirectoryMatch <var>regex</var>&gt;
 ... &lt;/DirectoryMatch&gt;</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
@@ -778,10 +863,10 @@ subdirectories</td></tr>
 </table>
     <p><code class="directive">&lt;DirectoryMatch&gt;</code> and
     <code>&lt;/DirectoryMatch&gt;</code> are used to enclose a group
-    of directives which will apply only to the named directory and
-    sub-directories of that directory, the same as <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>. However, it
-    takes as an argument a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular 
-    expression</a>. For example:</p>
+    of directives which will apply only to the named directory (and the files within),
+    the same as <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>.
+    However, it takes as an argument a
+    <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>.  For example:</p>
 
     <div class="example"><p><code>
       &lt;DirectoryMatch "^/www/(.+/)?[0-9]{3}"&gt;
@@ -790,6 +875,20 @@ subdirectories</td></tr>
     <p>would match directories in <code>/www/</code> that consisted of three
     numbers.</p>
 
+   <div class="note"><h3>Compatability</h3>
+      Prior to 2.3.9, this directive implicitly applied to sub-directories
+      (like <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>) and
+      could not match the end of line symbol ($).  In 2.3.9 and later,
+      only directories that match the expression are affected by the enclosed
+      directives.
+    </div>
+
+    <div class="note"><h3>Trailing Slash</h3>
+      This directive applies to requests for directories that may or may
+      not end in a trailing slash, so expressions that are anchored to the
+      end of line ($) must be written with care.
+    </div>
+
 <h3>See also</h3>
 <ul>
 <li><code class="directive"><a href="#directory">&lt;Directory&gt;</a></code> for
@@ -821,8 +920,8 @@ from the web</td></tr>
     </code></p></div>
 
     <p>then an access to
-    <code>http://www.my.host.com/index.html</code> refers to
-    <code>/usr/web/index.html</code>. If the <var>directory-path</var> is 
+    <code>http://my.example.com/index.html</code> refers to
+    <code>/usr/web/index.html</code>. If the <var>directory-path</var> is
     not absolute then it is assumed to be relative to the <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
 
     <p>The <code class="directive">DocumentRoot</code> should be specified without
@@ -835,6 +934,104 @@ Locations</a></li>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Else" id="Else">&lt;Else&gt;</a> <a name="else" id="else">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contains directives that apply only if the condition of a
+previous <code class="directive"><a href="#if">&lt;If&gt;</a></code> or
+<code class="directive"><a href="#elseif">&lt;ElseIf&gt;</a></code> section is not
+satisfied by a request at runtime</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;Else&gt; ... &lt;/Else&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>The <code class="directive">&lt;Else&gt;</code> applies the enclosed
+    directives if and only if the most recent
+    <code class="directive">&lt;If&gt;</code> or
+    <code class="directive">&lt;ElseIf&gt;</code> section
+    in the same scope has not been applied.
+    For example: In </p>
+
+    <div class="example"><p><code>
+        &lt;If "-z req('Host')"&gt;<br />
+        ...<br />
+        &lt;/If&gt;<br />
+        &lt;Else&gt;<br />
+        ...<br />
+        &lt;/Else&gt;<br />
+    </code></p></div>
+
+    <p> The <code class="directive">&lt;If&gt;</code> would match HTTP/1.0
+        requests without a <var>Host:</var> header and the
+        <code class="directive">&lt;Else&gt;</code> would match requests
+        with a <var>Host:</var> header.</p>
+
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#if">&lt;If&gt;</a></code></li>
+<li><code class="directive"><a href="#elseif">&lt;ElseIf&gt;</a></code></li>
+<li><a href="../sections.html">How &lt;Directory&gt;, &lt;Location&gt;,
+    &lt;Files&gt; sections work</a> for an explanation of how these
+    different sections are combined when a request is received.
+    <code class="directive">&lt;If&gt;</code>,
+    <code class="directive">&lt;ElseIf&gt;</code>, and
+    <code class="directive">&lt;Else&gt;</code> are applied last.</li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ElseIf" id="ElseIf">&lt;ElseIf&gt;</a> <a name="elseif" id="elseif">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contains directives that apply only if a condition is satisfied
+by a request at runtime while the condition of a previous
+<code class="directive"><a href="#if">&lt;If&gt;</a></code> or
+<code class="directive">&lt;ElseIf&gt;</code> section is not
+satisfied</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;ElseIf <var>expression</var>&gt; ... &lt;/ElseIf&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>The <code class="directive">&lt;ElseIf&gt;</code> applies the enclosed
+    directives if and only if both the given condition evaluates to true and
+    the most recent <code class="directive">&lt;If&gt;</code> or
+    <code class="directive">&lt;ElseIf&gt;</code> section in the same scope has
+    not been applied.  For example: In </p>
+
+    <div class="example"><p><code>
+        &lt;If "-R '10.1.0.0/16'"&gt;<br />
+        ...<br />
+        &lt;/If&gt;<br />
+        &lt;ElseIf "-R '10.0.0.0/8'"&gt;<br />
+        ...<br />
+        &lt;/ElseIf&gt;<br />
+        &lt;Else&gt;<br />
+        ...<br />
+        &lt;/Else&gt;<br />
+    </code></p></div>
+
+    <p>The <code class="directive">&lt;ElseIf&gt;</code> would match if
+    the remote address of a request belongs to the subnet 10.0.0.0/8 but
+    not to the subnet 10.1.0.0/16.</p>
+
+
+<h3>See also</h3>
+<ul>
+<li><a href="../expr.html">Expressions in Apache HTTP Server</a>,
+for a complete reference and more examples.</li>
+<li><code class="directive"><a href="#if">&lt;If&gt;</a></code></li>
+<li><code class="directive"><a href="#else">&lt;Else&gt;</a></code></li>
+<li><a href="../sections.html">How &lt;Directory&gt;, &lt;Location&gt;,
+    &lt;Files&gt; sections work</a> for an explanation of how these
+    different sections are combined when a request is received.
+    <code class="directive">&lt;If&gt;</code>,
+    <code class="directive">&lt;ElseIf&gt;</code>, and
+    <code class="directive">&lt;Else&gt;</code> are applied last.</li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="EnableMMAP" id="EnableMMAP">EnableMMAP</a> <a name="enablemmap" id="enablemmap">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use memory-mapping to read files during delivery</td></tr>
@@ -849,7 +1046,7 @@ Locations</a></li>
     memory-mapping if it needs to read the contents of a file during
     delivery.  By default, when the handling of a request requires
     access to the data within a file -- for example, when delivering a
-    server-parsed file using <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> -- Apache
+    server-parsed file using <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> -- Apache httpd
     memory-maps the file if the OS supports it.</p>
 
     <p>This memory-mapping sometimes yields a performance improvement.
@@ -859,10 +1056,10 @@ Locations</a></li>
     <ul>
     <li>On some multiprocessor systems, memory-mapping can reduce the
     performance of the <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</li>
-    <li>With an NFS-mounted <code class="directive"><a href="#documentroot">DocumentRoot</a></code>,
-    the <code class="program"><a href="../programs/httpd.html">httpd</a></code> may crash due to a segmentation fault if a file
-    is deleted or truncated while the <code class="program"><a href="../programs/httpd.html">httpd</a></code> has it
-    memory-mapped.</li>
+    <li>Deleting or truncating a file while <code class="program"><a href="../programs/httpd.html">httpd</a></code>
+      has it memory-mapped can cause <code class="program"><a href="../programs/httpd.html">httpd</a></code> to
+      crash with a segmentation fault.
+    </li>
     </ul>
 
     <p>For server configurations that are vulnerable to these problems,
@@ -889,18 +1086,19 @@ Locations</a></li>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the kernel sendfile support to deliver files to the client</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>EnableSendfile On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>EnableSendfile On</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>EnableSendfile Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.0.44 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.0.44 and later. Default changed to Off in
+version 2.3.9.</td></tr>
 </table>
     <p>This directive controls whether <code class="program"><a href="../programs/httpd.html">httpd</a></code> may use the
     sendfile support from the kernel to transmit file contents to the client.
     By default, when the handling of a request requires no access
     to the data within a file -- for example, when delivering a
-    static file -- Apache uses sendfile to deliver the file contents
+    static file -- Apache httpd uses sendfile to deliver the file contents
     without ever reading the file if the OS supports it.</p>
 
     <p>This sendfile mechanism avoids separate read and send operations,
@@ -915,21 +1113,21 @@ Locations</a></li>
     support.</li>
     <li>On Linux the use of sendfile triggers TCP-checksum
     offloading bugs on certain networking cards when using IPv6.</li>
-    <li>On Linux on Itanium, sendfile may be unable to handle files
-    over 2GB in size.</li>
-    <li>With a network-mounted <code class="directive"><a href="#documentroot">DocumentRoot</a></code> (e.g., NFS or SMB),
+    <li>On Linux on Itanium, <code>sendfile</code> may be unable to handle
+    files over 2GB in size.</li>
+    <li>With a network-mounted <code class="directive"><a href="#documentroot">DocumentRoot</a></code> (e.g., NFS, SMB, CIFS, FUSE),
     the kernel may be unable to serve the network file through
     its own cache.</li>
     </ul>
 
-    <p>For server configurations that are vulnerable to these problems,
-    you should disable this feature by specifying:</p>
+    <p>For server configurations that are not vulnerable to these problems,
+    you may enable this feature by specifying:</p>
 
     <div class="example"><p><code>
-      EnableSendfile Off
+      EnableSendfile On
     </code></p></div>
 
-    <p>For NFS or SMB mounted files, this feature may be disabled explicitly
+    <p>For network mounted files, this feature may be disabled explicitly
     for the offending files by specifying:</p>
 
     <div class="example"><p><code>
@@ -939,6 +1137,48 @@ Locations</a></li>
       </span>
       &lt;/Directory&gt;
     </code></p></div>
+    <p>Please note that the per-directory and .htaccess configuration
+       of <code class="directive">EnableSendfile</code> is not supported by
+       <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code>.
+       Only global definition of <code class="directive">EnableSendfile</code>
+       is taken into account by the module.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Error" id="Error">Error</a> <a name="error" id="error">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Abort configuration parsing with a custom error message</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Error <var>message</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.3.9 and later</td></tr>
+</table>
+    <p>If an error can be detected within the configuration, this
+    directive can be used to generate a custom error message, and halt
+    configuration parsing.  The typical use is for reporting required
+    modules which are missing from the configuration.</p>
+
+    <div class="example"><h3>Example</h3><p><code>
+      # ensure that mod_include is loaded<br />
+      &lt;IfModule !include_module&gt;<br />
+      Error mod_include is required by mod_foo.  Load it with LoadModule.<br />
+      &lt;/IfModule&gt;<br />
+      <br />
+      # ensure that exactly one of SSL,NOSSL is defined<br />
+      &lt;IfDefine SSL&gt;<br />
+      &lt;IfDefine NOSSL&gt;<br />
+      Error Both SSL and NOSSL are defined.  Define only one of them.<br />
+      &lt;/IfDefine&gt;<br />
+      &lt;/IfDefine&gt;<br />
+      &lt;IfDefine !SSL&gt;<br />
+      &lt;IfDefine !NOSSL&gt;<br />
+      Error Either SSL or NOSSL must be defined.<br />
+      &lt;/IfDefine&gt;<br />
+      &lt;/IfDefine&gt;<br />
+    </code></p></div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -951,10 +1191,8 @@ in case of an error</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Quoting syntax for text messages is different in Apache
-2.0</td></tr>
 </table>
-    <p>In the event of a problem or error, Apache can be configured
+    <p>In the event of a problem or error, Apache httpd can be configured
     to do one of four things,</p>
 
     <ol>
@@ -972,7 +1210,7 @@ in case of an error</td></tr>
     <p>The first option is the default, while options 2-4 are
     configured using the <code class="directive">ErrorDocument</code>
     directive, which is followed by the HTTP response code and a URL
-    or a message. Apache will sometimes offer additional information
+    or a message. Apache httpd will sometimes offer additional information
     regarding the problem/error.</p>
 
     <p>URLs can begin with a slash (/) for local web-paths (relative
@@ -988,9 +1226,9 @@ in case of an error</td></tr>
     </code></p></div>
 
     <p>Additionally, the special value <code>default</code> can be used
-    to specify Apache's simple hardcoded message.  While not required
+    to specify Apache httpd's simple hardcoded message.  While not required
     under normal circumstances, <code>default</code> will restore
-    Apache's simple hardcoded message for configurations that would
+    Apache httpd's simple hardcoded message for configurations that would
     otherwise inherit an existing <code class="directive">ErrorDocument</code>.</p>
 
     <div class="example"><p><code>
@@ -1004,7 +1242,7 @@ in case of an error</td></tr>
 
     <p>Note that when you specify an <code class="directive">ErrorDocument</code>
     that points to a remote URL (ie. anything with a method such as
-    <code>http</code> in front of it), Apache will send a redirect to the
+    <code>http</code> in front of it), Apache HTTP Server will send a redirect to the
     client to tell it where to find the document, even if the
     document ends up being on the same server. This has several
     implications, the most important being that the client will not
@@ -1034,8 +1272,10 @@ in case of an error</td></tr>
     This is necessary to guard against security problems caused by
     bad requests.</p>
 
-    <p>Prior to version 2.0, messages were indicated by prefixing
-    them with a single unmatched double quote character.</p>
+    <p>If you are using mod_proxy, you may wish to enable
+    <code class="directive"><a href="../mod/mod_proxy.html#proxyerroroverride">ProxyErrorOverride</a></code> so that you can provide
+    custom error messages on behalf of your Origin servers. If you don't enable ProxyErrorOverride,
+    Apache httpd will not generate custom error documents for proxied content.</p>
 
 <h3>See also</h3>
 <ul>
@@ -1055,7 +1295,7 @@ in case of an error</td></tr>
 </table>
     <p>The <code class="directive">ErrorLog</code> directive sets the name of
     the file to which the server will log any errors it encounters. If
-    the <var>file-path</var> is not absolute then it is assumed to be 
+    the <var>file-path</var> is not absolute then it is assumed to be
     relative to the <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
 
     <div class="example"><h3>Example</h3><p><code>
@@ -1063,19 +1303,24 @@ in case of an error</td></tr>
     </code></p></div>
 
     <p>If the <var>file-path</var>
-    begins with a pipe (|) then it is assumed to be a command to spawn
-    to handle the error log.</p>
+    begins with a pipe character "<code>|</code>" then it is assumed to be a
+    command to spawn to handle the error log.</p>
 
     <div class="example"><h3>Example</h3><p><code>
     ErrorLog "|/usr/local/bin/httpd_errors"
     </code></p></div>
 
+    <p>See the notes on <a href="../logs.html#piped">piped logs</a> for
+    more information.</p>
+
     <p>Using <code>syslog</code> instead of a filename enables logging
     via syslogd(8) if the system supports it. The default is to use
     syslog facility <code>local7</code>, but you can override this by
     using the <code>syslog:<var>facility</var></code> syntax where
     <var>facility</var> can be one of the names usually documented in
-    syslog(1).</p>
+    syslog(1).  The facility is effectively global, and if it is changed
+    in individual virtual hosts, the final facility specified affects the
+    entire server.</p>
 
     <div class="example"><h3>Example</h3><p><code>
     ErrorLog syslog:user
@@ -1087,22 +1332,212 @@ in case of an error</td></tr>
     anyone other than the user that starts the server.</p>
     <div class="warning"><h3>Note</h3>
       <p>When entering a file path on non-Unix platforms, care should be taken
-      to make sure that only forward slashed are used even though the platform
-      may allow the use of back slashes. In general it is a good idea to always 
+      to make sure that only forward slashes are used even though the platform
+      may allow the use of back slashes. In general it is a good idea to always
       use forward slashes throughout the configuration files.</p>
     </div>
 
 <h3>See also</h3>
 <ul>
 <li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
-<li><a href="../logs.html">Apache Log Files</a></li>
+<li><a href="../logs.html">Apache HTTP Server Log Files</a></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ErrorLogFormat" id="ErrorLogFormat">ErrorLogFormat</a> <a name="errorlogformat" id="errorlogformat">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Format specification for error log entries</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> ErrorLogFormat [connection|request] <var>format</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.3.9 and later</td></tr>
+</table>
+    <p><code class="directive">ErrorLogFormat</code> allows to specify what
+    supplementary information is logged in the error log in addition to the
+    actual log message.</p>
+
+    <div class="example"><h3>Simple example</h3><p><code>
+        ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
+    </code></p></div>
+
+    <p>Specifying <code>connection</code> or <code>request</code> as first
+    parameter allows to specify additional formats, causing additional
+    information to be logged when the first message is logged for a specific
+    connection or request, respectivly. This additional information is only
+    logged once per connection/request. If a connection or request is processed
+    without causing any log message, the additional information is not logged
+    either.</p>
+
+    <p>It can happen that some format string items do not produce output.  For
+    example, the Referer header is only present if the log message is
+    associated to a request and the log message happens at a time when the
+    Referer header has already been read from the client.  If no output is
+    produced, the default behaviour is to delete everything from the preceeding
+    space character to the next space character.  This means the log line is
+    implicitly divided into fields on non-whitespace to whitespace transitions.
+    If a format string item does not produce output, the whole field is
+    ommitted.  For example, if the remote address <code>%a</code> in the log
+    format <code>[%t] [%l] [%a] %M&nbsp;</code> is not available, the surrounding
+    brackets are not logged either.  Space characters can be escaped with a
+    backslash to prevent them from delimiting a field.  The combination '%&nbsp;'
+    (percent space) is a zero-witdh field delimiter that does not produce any
+    output.</p>
+
+    <p>The above behaviour can be changed by adding modifiers to the format
+    string item. A <code>-</code> (minus) modifier causes a minus to be logged if the
+    respective item does not produce any output. In once-per-connection/request
+    formats, it is also possible to use the <code>+</code> (plus) modifier. If an
+    item with the plus modifier does not produce any output, the whole line is
+    ommitted.</p>
+
+    <p>A number as modifier can be used to assign a log severity level to a
+    format item. The item will only be logged if the severity of the log
+    message is not higher than the specified log severity level. The number can
+    range from 1 (alert) over 4 (warn) and 7 (debug) to 15 (trace8).</p>
+
+    <p>Some format string items accept additional parameters in braces.</p>
+
+    <table class="bordered"><tr class="header"><th>Format&nbsp;String</th> <th>Description</th></tr>
+<tr><td><code>%%</code></td>
+        <td>The percent sign</td></tr>
+<tr class="odd"><td><code>%...a</code></td>
+        <td>Remote IP-address and port</td></tr>
+<tr><td><code>%...A</code></td>
+        <td>Local IP-address and port</td></tr>
+<tr class="odd"><td><code>%...{<em>name</em>}e</code></td>
+        <td>Request environment variable <em>name</em></td></tr>
+<tr><td><code>%...E</code></td>
+        <td>APR/OS error status code and string</td></tr>
+<tr class="odd"><td><code>%...F</code></td>
+        <td>Source file name and line number of the log call</td></tr>
+<tr><td><code>%...{<em>name</em>}i</code></td>
+        <td>Request header <em>name</em></td></tr>
+<tr class="odd"><td><code>%...k</code></td>
+        <td>Number of keep-alive requests on this connection</td></tr>
+<tr><td><code>%...l</code></td>
+        <td>Loglevel of the message</td></tr>
+<tr class="odd"><td><code>%...L</code></td>
+        <td>Log ID of the request</td></tr>
+<tr><td><code>%...{c}L</code></td>
+        <td>Log ID of the connection</td></tr>
+<tr class="odd"><td><code>%...{C}L</code></td>
+        <td>Log ID of the connection if used in connection scope, empty otherwise</td></tr>
+<tr><td><code>%...m</code></td>
+        <td>Name of the module logging the message</td></tr>
+<tr class="odd"><td><code>%M</code></td>
+        <td>The actual log message</td></tr>
+<tr><td><code>%...{<em>name</em>}n</code></td>
+        <td>Request note <em>name</em></td></tr>
+<tr class="odd"><td><code>%...P</code></td>
+        <td>Process ID of current process</td></tr>
+<tr><td><code>%...T</code></td>
+        <td>Thread ID of current thread</td></tr>
+<tr class="odd"><td><code>%...{g}T</code></td>
+        <td>System unique thread ID of current thread (the same ID as
+            displayed by e.g. <code>top</code>; currently Linux only)</td></tr>
+<tr><td><code>%...t</code></td>
+        <td>The current time</td></tr>
+<tr class="odd"><td><code>%...{u}t</code></td>
+        <td>The current time including micro-seconds</td></tr>
+<tr><td><code>%...{cu}t</code></td>
+        <td>The current time in compact ISO 8601 format, including
+            micro-seconds</td></tr>
+<tr class="odd"><td><code>%...v</code></td>
+        <td>The canonical <code class="directive"><a href="#servername">ServerName</a></code>
+            of the current server.</td></tr>
+<tr><td><code>%...V</code></td>
+        <td>The server name of the server serving the request according to the
+            <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code>
+            setting.</td></tr>
+<tr class="odd"><td><code>\&nbsp;</code> (backslash space)</td>
+        <td>Non-field delimiting space</td></tr>
+<tr><td><code>%&nbsp;</code> (percent space)</td>
+        <td>Field delimiter (no output)</td></tr>
+</table>
+
+    <p>The log ID format <code>%L</code> produces a unique id for a connection
+    or request. This can be used to correlate which log lines belong to the
+    same connection or request, which request happens on which connection.
+    A <code>%L</code> format string is also available in
+    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>, to allow to correlate access log entries
+    with error log lines. If <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> is loaded, its
+    unique id will be used as log ID for requests.</p>
+
+    <div class="example"><h3>Example (default format)</h3><p><code>
+        ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a]
+        %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
+    </code></p></div>
+
+    <p>This would result in error messages such as:</p>
+
+    <div class="example"><p><code>
+    [Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico
+    </code></p></div>
+
+    <p>Notice that, as discussed above, some fields are ommitted
+    entirely because they are not defined.</p>
+
+    <div class="example"><h3>Example (similar to the 2.2.x format)</h3><p><code>
+        ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a]
+        %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
+    </code></p></div>
+
+    <div class="example"><h3>Advanced example with request/connection log IDs</h3><p><code>
+        ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"<br />
+        ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"<br />
+        ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"<br />
+        ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"<br />
+        ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"<br />
+    </code></p></div>
+
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#errorlog">ErrorLog</a></code></li>
+<li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
+<li><a href="../logs.html">Apache HTTP Server Log Files</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ExtendedStatus" id="ExtendedStatus">ExtendedStatus</a> <a name="extendedstatus" id="extendedstatus">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Keep track of extended status information for each
+request</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ExtendedStatus On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ExtendedStatus Off[*]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>This option tracks additional data per worker about the
+    currently executing request, and a utilization summary; you
+    can see these variables during runtime by configuring
+    <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.  Note that other modules may
+    rely on this scoreboard.</p>
+
+    <p>This setting applies to the entire server, and cannot be
+    enabled or disabled on a virtualhost-by-virtualhost basis.
+    The collection of extended status information can slow down
+    the server.  Also note that this setting cannot be changed
+    during a graceful restart.</p>
+
+    <div class="note">
+    <p>Note that loading <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> will change
+    the default behavior to ExtendedStatus On, while other
+    third party modules may do the same.  Such modules rely on
+    collecting detailed information about the state of all workers.
+    The default is changed by <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> beginning
+    with version 2.3.6; the previous default was always Off.</p>
+    </div>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="FileETag" id="FileETag">FileETag</a> <a name="fileetag" id="fileetag">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File attributes used to create the ETag
-HTTP response header</td></tr>
+HTTP response header for static files</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FileETag <var>component</var> ...</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FileETag INode MTime Size</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
@@ -1113,11 +1548,9 @@ HTTP response header</td></tr>
     <p>
     The <code class="directive">FileETag</code> directive configures the file
     attributes that are used to create the <code>ETag</code> (entity
-    tag) response header field when the document is based on a file.
+    tag) response header field when the document is based on a static file.
     (The <code>ETag</code> value is used in cache management to save
-    network bandwidth.) In Apache 1.3.22 and earlier, the
-    <code>ETag</code> value was <em>always</em> formed
-    from the file's inode, size, and last-modified time (mtime). The
+    network bandwidth.) The
     <code class="directive">FileETag</code> directive allows you to choose
     which of these -- if any -- should be used. The recognized keywords are:
     </p>
@@ -1157,6 +1590,12 @@ HTTP response header</td></tr>
     These conditional requests will break if the <code>ETag</code> format is
     changed via <code class="directive">FileETag</code>.
     </div>
+    <div class="note"><h3>Server Side Includes</h3>
+    An ETag is not generated for responses parsed by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
+    since the response entity can change without a change of the INode, MTime, or Size
+    of the static file with embedded SSI directives.
+    </div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1188,7 +1627,7 @@ filenames</td></tr>
     <p>The <var>filename</var> argument should include a filename, or
     a wild-card string, where <code>?</code> matches any single character,
     and <code>*</code> matches any sequences of characters.
-    <a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular expressions</a> 
+    <a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular expressions</a>
     can also be used, with the addition of the
     <code>~</code> character. For example:</p>
 
@@ -1225,7 +1664,7 @@ filenames</td></tr>
     <p>The <code class="directive">&lt;FilesMatch&gt;</code> directive
     limits the scope of the enclosed directives by filename, just as the
     <code class="directive"><a href="#files">&lt;Files&gt;</a></code> directive
-    does. However, it accepts a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular 
+    does. However, it accepts a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular
     expression</a>. For example:</p>
 
     <div class="example"><p><code>
@@ -1251,7 +1690,7 @@ media type in the HTTP Content-Type header field</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved to the core in Apache 2.0</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved to the core in Apache httpd 2.0</td></tr>
 </table>
     <p>When placed into an <code>.htaccess</code> file or a
     <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>, or
@@ -1291,6 +1730,31 @@ media type in the HTTP Content-Type header field</td></tr>
       &lt;/Location&gt;
     </code></p></div>
 
+    <p>This directive primarily overrides the content types generated for
+    static files served out of the filesystem.  For resources other than
+    static files, where the generator of the response typically specifies
+    a Content-Type, this directive has no effect.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="GprofDir" id="GprofDir">GprofDir</a> <a name="gprofdir" id="gprofdir">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory to write gmon.out profiling data to.  </td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>When the server has been compiled with gprof profiling suppport,
+    <code class="directive">GprofDir</code> causes <code>gmon.out</code> files to
+    be written to the specified directory when the process exits.  If the
+    argument ends with a percent symbol ('%'), subdirectories are created
+    for each process id.</p>
+
+    <p>This directive currently only works with the <code class="module"><a href="../mod/prefork.html">prefork</a></code>
+    MPM.</p>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="HostnameLookups" id="HostnameLookups">HostnameLookups</a> <a name="hostnamelookups" id="hostnamelookups">Directive</a></h2>
@@ -1350,18 +1814,39 @@ satisfied by a request at runtime</td></tr>
     For example:</p>
 
     <div class="example"><p><code>
-        &lt;If "$req{Host} = ''"&gt;
+        &lt;If "-z req('Host')"&gt;
+    </code></p></div>
+
+    <p>would match HTTP/1.0 requests without a <var>Host:</var> header.
+    Expressions may contain various shell-like operators for string
+    comparison (<code>=</code>, <code>!=</code>, <code>&lt;</code>, ...),
+    integer comparison (<code>-eq</code>, <code>-ne</code>, ...),
+    and others (<code>-n</code>, <code>-z</code>, <code>-f</code>, ...).
+    It is also possible to use regular expressions, </p>
+
+    <div class="example"><p><code>
+        &lt;If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"&gt;
     </code></p></div>
 
-    <p>would match HTTP/1.0 requests without a <var>Host:</var> header.</p>
+    <p>shell-like pattern matches and many other operations. These operations
+    can be done on request headers (<code>req</code>), environment variables
+    (<code>env</code>), and a large number of other properties. The full
+    documentation is available in <a href="../expr.html">Expressions in
+    Apache HTTP Server</a>.</p>
+
 
 <h3>See also</h3>
 <ul>
+<li><a href="../expr.html">Expressions in Apache HTTP Server</a>,
+for a complete reference and more examples.</li>
+<li><code class="directive"><a href="#elseif">&lt;ElseIf&gt;</a></code></li>
+<li><code class="directive"><a href="#else">&lt;Else&gt;</a></code></li>
 <li><a href="../sections.html">How &lt;Directory&gt;, &lt;Location&gt;,
     &lt;Files&gt; sections work</a> for an explanation of how these
     different sections are combined when a request is received.
-    <code class="directive">&lt;If&gt;</code> has the same precedence
-    and usage as <code class="directive">&lt;Files&gt;</code></li>
+    <code class="directive">&lt;If&gt;</code>,
+    <code class="directive">&lt;ElseIf&gt;</code>, and
+    <code class="directive">&lt;Else&gt;</code> are applied last.</li>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1423,7 +1908,7 @@ if a test is true at startup</td></tr>
           &lt;/IfDefine&gt;<br />
           &lt;IfDefine !MemCache&gt;<br />
           <span class="indent">
-            LoadModule disk_cache_module   modules/mod_disk_cache.so<br />
+            LoadModule cache_disk_module   modules/mod_cache_disk.so<br />
           </span>
           &lt;/IfDefine&gt;
         </span>
@@ -1463,7 +1948,7 @@ later.</td></tr>
 
     <p>In the former case, the directives between the start and end
     markers are only processed if the module named <var>module</var>
-    is included in Apache -- either compiled in or
+    is included in Apache httpd -- either compiled in or
     dynamically loaded using <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>. The second format reverses the test,
     and only processes the directives if <var>module</var> is
     <strong>not</strong> included.</p>
@@ -1491,27 +1976,50 @@ later.</td></tr>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Includes other configuration files from within
 the server configuration files</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Include <var>file-path</var>|<var>directory-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Include [<var>optional</var>|<var>strict</var>] <var>file-path</var>|<var>directory-path</var>|<var>wildcard</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Wildcard matching available in 2.0.41 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Wildcard matching available in 2.0.41 and later, directory
+wildcard matching available in 2.3.6 and later</td></tr>
 </table>
     <p>This directive allows inclusion of other configuration files
     from within the server configuration files.</p>
 
-    <p>Shell-style (<code>fnmatch()</code>) wildcard characters can be used to
-    include several files at once, in alphabetical order. In
-    addition, if <code class="directive">Include</code> points to a directory,
-    rather than a file, Apache will read all files in that directory
-    and any subdirectory.  However, including entire directories is not
-    recommended, because it is easy to accidentally leave temporary
-    files in a directory that can cause <code class="program"><a href="../programs/httpd.html">httpd</a></code> to
-    fail. Instead, we encourage you to use the wildcard syntax shown
-    below, to include files that match a particular pattern, such as
-    *.conf, for example.</p>
-
-    <p>The file path specified may be an absolute path, or may be relative 
+    <p>Shell-style (<code>fnmatch()</code>) wildcard characters can be used
+    in the filename or directory parts of the path to include several files
+    at once, in alphabetical order. In addition, if
+    <code class="directive">Include</code> points to a directory, rather than a file,
+    Apache httpd will read all files in that directory and any subdirectory.
+    However, including entire directories is not recommended, because it is
+    easy to accidentally leave temporary files in a directory that can cause
+    <code class="program"><a href="../programs/httpd.html">httpd</a></code> to fail. Instead, we encourage you to use the
+    wildcard syntax shown below, to include files that match a particular
+    pattern, such as *.conf, for example.</p>
+
+    <p>When a wildcard is specified for a <strong>file</strong> component of
+    the path, and no file matches the wildcard, the
+    <code class="directive"><a href="#include">Include</a></code>
+    directive will be <strong>silently ignored</strong>. When a wildcard is
+    specified for a <strong>directory</strong> component of the path, and
+    no directory matches the wildcard, the
+    <code class="directive"><a href="#include">Include</a></code> directive will
+    <strong>fail with an error</strong> saying the directory cannot be found.
+    </p>
+
+    <p>For further control over the behaviour of the server when no files or
+    directories match, prefix the path with the modifiers <var>optional</var>
+    or <var>strict</var>. If <var>optional</var> is specified, any wildcard
+    file or directory that does not match will be silently ignored. If
+    <var>strict</var> is specified, any wildcard file or directory that does
+    not match at least one file will cause server startup to fail.</p>
+
+    <p>When a directory or file component of the path is
+    specified exactly, and that directory or file does not exist,
+    <code class="directive"><a href="#include">Include</a></code> directive will fail with an
+    error saying the file or directory cannot be found.</p>
+
+    <p>The file path specified may be an absolute path, or may be relative
     to the <code class="directive"><a href="#serverroot">ServerRoot</a></code> directory.</p>
 
     <p>Examples:</p>
@@ -1528,6 +2036,31 @@ the server configuration files</td></tr>
       Include conf/vhosts/*.conf
     </code></p></div>
 
+    <p>Wildcards may be included in the directory or file portion of the
+    path. In the following example, the server will fail to load if no
+    directories match conf/vhosts/*, but will load successfully if no
+    files match *.conf.</p>
+
+    <div class="example"><p><code>
+      Include conf/vhosts/*/vhost.conf<br />
+      Include conf/vhosts/*/*.conf
+    </code></p></div>
+
+    <p>In this example, the server will fail to load if either
+    conf/vhosts/* matches no directories, or if *.conf matches no files:</p>
+
+    <div class="example"><p><code>
+      Include strict conf/vhosts/*/*.conf
+    </code></p></div>
+
+    <p>In this example, the server load successfully if either conf/vhosts/*
+    matches no directories, or if *.conf matches no files:</p>
+
+    <div class="example"><p><code>
+      Include optional conf/vhosts/*/*.conf
+    </code></p></div>
+
+
 <h3>See also</h3>
 <ul>
 <li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li>
@@ -1564,7 +2097,7 @@ the server configuration files</td></tr>
     length over persistent connections.</p>
 
     <p>When a client uses a Keep-Alive connection it will be counted
-    as a single "request" for the <code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> directive, regardless
+    as a single "request" for the <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> directive, regardless
     of how many requests are sent using the connection.</p>
 
 <h3>See also</h3>
@@ -1582,10 +2115,10 @@ requests on a persistent connection</td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Specifying a value in milliseconds is available in 
-Apache 2.3.2 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Specifying a value in milliseconds is available in
+Apache httpd 2.3.2 and later</td></tr>
 </table>
-    <p>The number of seconds Apache will wait for a subsequent
+    <p>The number of seconds Apache httpd will wait for a subsequent
     request before closing the connection. By adding a postfix of ms the
     timeout can be also set in milliseconds. Once a request has been
     received, the timeout value specified by the
@@ -1595,10 +2128,9 @@ Apache 2.3.2 and later</td></tr>
     may cause performance problems in heavily loaded servers. The
     higher the timeout, the more server processes will be kept
     occupied waiting on connections with idle clients.</p>
-    
+
     <p>In a name-based virtual host context, the value of the first
-    defined virtual host (the default host) in a set of <code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code> will be used.
-    The other values will be ignored.</p>
+    defined virtual host best matching the local IP and port will be used.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1673,12 +2205,12 @@ methods</td></tr>
       &lt;LimitExcept GET&gt;
       <span class="indent">
         Require valid-user
-      </span> 
+      </span>
       &lt;/LimitExcept&gt;<br />
       &lt;Limit POST&gt;
       <span class="indent">
         Require group editors
-      </span> 
+      </span>
       &lt;/Limit&gt;
     </code></p></div>
 
@@ -1725,10 +2257,10 @@ subrequests</td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.47 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.0.47 and later</td></tr>
 </table>
     <p>An internal redirect happens, for example, when using the <code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> directive, which internally
-    redirects the original request to a CGI script. A subrequest is Apache's
+    redirects the original request to a CGI script. A subrequest is Apache httpd's
     mechanism to find out what would happen for some URI if it were requested.
     For example, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> uses subrequests to look for the
     files listed in the <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
@@ -1763,7 +2295,8 @@ from the client</td></tr>
 </table>
     <p>This directive specifies the number of <var>bytes</var> from 0
     (meaning unlimited) to 2147483647 (2GB) that are allowed in a
-    request body.</p>
+    request body. See the note below for the limited applicability
+    to proxy requests.</p>
 
     <p>The <code class="directive">LimitRequestBody</code> directive allows
     the user to set a limit on the allowed size of an HTTP request
@@ -1791,6 +2324,10 @@ from the client</td></tr>
       LimitRequestBody 102400
     </code></p></div>
 
+    <div class="note"><p>For a full description of how this directive is interpreted by
+    proxy requests, see the <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> documentation.</p>
+    </div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1800,7 +2337,7 @@ from the client</td></tr>
 will be accepted from the client</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestFields <var>number</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestFields 100</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
@@ -1833,6 +2370,12 @@ will be accepted from the client</td></tr>
       LimitRequestFields 50
     </code></p></div>
 
+     <div class="warning"><h3>Warning</h3>
+     <p> When name-based virtual hosting is used, the value for this
+     directive is taken from the default (first-listed) virtual host for the
+     local IP and port combination</p>.
+     </div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1842,7 +2385,7 @@ will be accepted from the client</td></tr>
 client</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestFieldSize <var>bytes</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestFieldSize 8190</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
@@ -1850,11 +2393,11 @@ client</td></tr>
     that will be allowed in an HTTP request header.</p>
 
     <p>The <code class="directive">LimitRequestFieldSize</code> directive
-    allows the server administrator to reduce or increase the limit 
+    allows the server administrator to reduce or increase the limit
     on the allowed size of an HTTP request header field. A server
-    needs this value to be large enough to hold any one header field 
-    from a normal client request. The size of a normal request header 
-    field will vary greatly among different client implementations, 
+    needs this value to be large enough to hold any one header field
+    from a normal client request. The size of a normal request header
+    field will vary greatly among different client implementations,
     often depending upon the extent to which a user has configured
     their browser to support detailed content negotiation. SPNEGO
     authentication headers can be up to 12392 bytes.</p>
@@ -1872,6 +2415,11 @@ client</td></tr>
     <div class="note">Under normal conditions, the value should not be changed from
     the default.</div>
 
+    <div class="warning"><h3>Warning</h3>
+    <p> When name-based virtual hosting is used, the value for this
+    directive is taken from the default (first-listed) virtual host best
+    matching the current IP address and port combination.</p>
+    </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1881,11 +2429,11 @@ client</td></tr>
 from the client</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestLine <var>bytes</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestLine 8190</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
-    <p>This directive sets the number of <var>bytes</var> that will be 
+    <p>This directive sets the number of <var>bytes</var> that will be
     allowed on the HTTP request-line.</p>
 
     <p>The <code class="directive">LimitRequestLine</code> directive allows
@@ -1911,6 +2459,13 @@ from the client</td></tr>
     <div class="note">Under normal conditions, the value should not be changed from
     the default.</div>
 
+    <div class="warning"><h3>Warning</h3>
+    <p> When name-based virtual hosting is used, the value for this
+    directive is taken from the default (first-listed) virtual host best
+    matching the current IP address and port combination.</p>
+    </div>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="LimitXMLRequestBody" id="LimitXMLRequestBody">LimitXMLRequestBody</a> <a name="limitxmlrequestbody" id="limitxmlrequestbody">Directive</a></h2>
@@ -1960,12 +2515,44 @@ URLs</td></tr>
     locations.  Since several different URLs may map to the same
     filesystem location, such access controls may by circumvented.</p>
 
+    <p>The enclosed directives will be applied to the request if the path component
+    of the URL meets <em>any</em> of the following criteria:
+    </p>
+    <ul>
+      <li>The specified location matches exactly the path component of the URL.
+      </li>
+      <li>The specified location, which ends in a forward slash, is a prefix
+      of the path component of the URL (treated as a context root).
+      </li>
+      <li>The specified location, with the addition of a trailing slash, is a
+      prefix of the path component of the URL (also treated as a context root).
+      </li>
+    </ul>
+    <p>
+    In the example below, where no trailing slash is used, requests to
+    /private1, /private1/ and /private1/file.txt will have the enclosed
+    directives applied, but /private1other would not.
+    </p>
+    <div class="example"><p><code>
+      &lt;Location /private1&gt;
+          ...
+    </code></p></div>
+    <p>
+    In the example below, where a trailing slash is used, requests to
+    /private2/ and /private2/file.txt will have the enclosed
+    directives applied, but /private2 and /private2other would not.
+    </p>
+    <div class="example"><p><code>
+      &lt;Location /private2<em>/</em>&gt;
+          ...
+    </code></p></div>
+
     <div class="note"><h3>When to use <code class="directive">&lt;Location&gt;</code></h3>
 
     <p>Use <code class="directive">&lt;Location&gt;</code> to apply
     directives to content that lives outside the filesystem.  For
     content that lives in the filesystem, use <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code> and <code class="directive"><a href="#files">&lt;Files&gt;</a></code>.  An exception is
-    <code>&lt;Location /&gt;</code>, which is an easy way to 
+    <code>&lt;Location /&gt;</code>, which is an easy way to
     apply a configuration to the entire server.</p>
     </div>
 
@@ -1981,8 +2568,8 @@ URLs</td></tr>
     characters. Neither wildcard character matches a / in the URL-path.</p>
 
     <p><a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular expressions</a>
-    can also be used, with the addition of the
-    <code>~</code> character. For example:</p>
+    can also be used, with the addition of the <code>~</code>
+    character. For example:</p>
 
     <div class="example"><p><code>
       &lt;Location ~ "/(extra|special)/data"&gt;
@@ -1990,7 +2577,9 @@ URLs</td></tr>
 
     <p>would match URLs that contained the substring <code>/extra/data</code>
     or <code>/special/data</code>. The directive <code class="directive"><a href="#locationmatch">&lt;LocationMatch&gt;</a></code> behaves
-    identical to the regex version of <code class="directive">&lt;Location&gt;</code>.</p>
+    identical to the regex version of <code class="directive">&lt;Location&gt;</code>, and is preferred, for the
+    simple reason that <code>~</code> is hard to distinguish from
+    <code>-</code> in many fonts.</p>
 
     <p>The <code class="directive">&lt;Location&gt;</code>
     functionality is especially useful when combined with the
@@ -2002,9 +2591,7 @@ URLs</td></tr>
       &lt;Location /status&gt;<br />
       <span class="indent">
         SetHandler server-status<br />
-        Order Deny,Allow<br />
-        Deny from all<br />
-        Allow from .example.com<br />
+        Require host example.com<br />
       </span>
       &lt;/Location&gt;
     </code></p></div>
@@ -2032,7 +2619,8 @@ URLs</td></tr>
 <ul>
 <li><a href="../sections.html">How &lt;Directory&gt;, &lt;Location&gt;
     and &lt;Files&gt; sections work</a> for an explanation of how these
-    different sections are combined when a request is received</li>
+    different sections are combined when a request is received.</li>
+<li><code class="directive"><a href="#locationmatch">LocationMatch</a></code></li>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -2070,11 +2658,15 @@ matching URLs</td></tr>
 <div class="directive-section"><h2><a name="LogLevel" id="LogLevel">LogLevel</a> <a name="loglevel" id="loglevel">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the verbosity of the ErrorLog</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogLevel <var>level</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogLevel [<var>module</var>:]<var>level</var>
+    [<var>module</var>:<var>level</var>] ...
+</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogLevel warn</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Per-module and per-directory configuration is available in
+    Apache HTTP Server 2.3.6 and later</td></tr>
 </table>
     <p><code class="directive">LogLevel</code> adjusts the verbosity of the
     messages recorded in the error logs (see <code class="directive"><a href="#errorlog">ErrorLog</a></code> directive). The following
@@ -2157,6 +2749,62 @@ matching URLs</td></tr>
 
         <td>"Opening config file ..."</td>
       </tr>
+      <tr>
+        <td><code>trace1</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"proxy: FTP: control connection complete"</td>
+      </tr>
+      <tr>
+        <td><code>trace2</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
+      </tr>
+      <tr>
+        <td><code>trace3</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"openssl: Handshake: start"</td>
+      </tr>
+      <tr>
+        <td><code>trace4</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
+      </tr>
+      <tr>
+        <td><code>trace5</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
+      </tr>
+      <tr>
+        <td><code>trace6</code> </td>
+
+        <td>Trace messages</td>
+
+        <td>"cache lookup FAILED, forcing new map lookup"</td>
+      </tr>
+      <tr>
+        <td><code>trace7</code> </td>
+
+        <td>Trace messages, dumping large amounts of data</td>
+
+        <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
+      </tr>
+      <tr>
+        <td><code>trace8</code> </td>
+
+        <td>Trace messages, dumping large amounts of data</td>
+
+        <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
+      </tr>
     </table>
 
     <p>When a particular level is specified, messages from all
@@ -2181,6 +2829,36 @@ matching URLs</td></tr>
       using <code>syslog</code>.</p>
     </div>
 
+    <p>Specifying a level without a module name will reset the level
+    for all modules to that level.  Specifying a level with a module
+    name will set the level for that module only. It is possible to
+    use the module source file name, the module identifier, or the
+    module identifier with the trailing <code>_module</code> omitted
+    as module specification. This means the following three specifications
+    are equivalent:</p>
+
+    <div class="example"><p><code>
+      LogLevel info ssl:warn<br />
+      LogLevel info mod_ssl.c:warn<br />
+      LogLevel info ssl_module:warn<br />
+    </code></p></div>
+
+    <p>It is also possible to change the level per directory:</p>
+
+    <div class="example"><p><code>
+        LogLevel info<br />
+        &lt;Directory /usr/local/apache/htdocs/app&gt;<br />
+        &nbsp; LogLevel debug<br />
+        &lt;/Files&gt;
+    </code></p></div>
+
+    <div class="note">
+        Per directory loglevel configuration only affects messages that are
+       logged after the request has been parsed and that are associated with
+       the request. Log messages which are associated with the connection or
+       the server are not affected.
+    </div>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxKeepAliveRequests" id="MaxKeepAliveRequests">MaxKeepAliveRequests</a> <a name="maxkeepaliverequests" id="maxkeepaliverequests">Directive</a></h2>
@@ -2208,77 +2886,346 @@ connection</td></tr>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="NameVirtualHost" id="NameVirtualHost">NameVirtualHost</a> <a name="namevirtualhost" id="namevirtualhost">Directive</a></h2>
+<div class="directive-section"><h2><a name="MaxRangeOverlaps" id="MaxRangeOverlaps">MaxRangeOverlaps</a> <a name="maxrangeoverlaps" id="maxrangeoverlaps">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Designates an IP address for name-virtual
-hosting</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>NameVirtualHost <var>addr</var>[:<var>port</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of overlapping ranges (eg: <code>100-200,150-300</code>) allowed before returning the complete
+        resource </td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MaxRangeOverlaps default | unlimited | none | <var>number-of-ranges</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MaxRangeOverlaps 20</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.15 and later</td></tr>
+</table>
+        <p>The <code class="directive">MaxRangeOverlaps</code> directive
+            limits the number of overlapping HTTP ranges the server is willing to
+            return to the client.  If more overlapping ranges then permitted are requested,
+            the complete resource is returned instead.</p>
+
+        <dl>
+            <dt><strong>default</strong></dt>
+            <dd>Limits the number of overlapping ranges to a compile-time default of 20.</dd>
+
+            <dt><strong>none</strong></dt>
+            <dd>No overlapping Range headers are allowed.</dd>
+
+            <dt><strong>unlimited</strong></dt>
+            <dd>The server does not limit the number of overlapping ranges it is
+                willing to satisfy.</dd>
+
+            <dt><var>number-of-ranges</var></dt>
+            <dd>A positive number representing the maximum number of overlapping ranges the
+                server is willing to satisfy.</dd>
+        </dl>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="MaxRangeReversals" id="MaxRangeReversals">MaxRangeReversals</a> <a name="maxrangereversals" id="maxrangereversals">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of range reversals (eg: <code>100-200,50-70</code>) allowed before returning the complete
+        resource </td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MaxRangeReversals default | unlimited | none | <var>number-of-ranges</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MaxRangeReversals 20</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.15 and later</td></tr>
+</table>
+        <p>The <code class="directive">MaxRangeReversals</code> directive
+            limits the number of HTTP Range reversals the server is willing to
+            return to the client.  If more ranges reversals then permitted are requested,
+            the complete resource is returned instead.</p>
+
+        <dl>
+            <dt><strong>default</strong></dt>
+            <dd>Limits the number of range reversals to a compile-time default of 20.</dd>
+
+            <dt><strong>none</strong></dt>
+            <dd>No Range reversals headers are allowed.</dd>
+
+            <dt><strong>unlimited</strong></dt>
+            <dd>The server does not limit the number of range reversals it is
+                willing to satisfy.</dd>
+
+            <dt><var>number-of-ranges</var></dt>
+            <dd>A positive number representing the maximum number of range reversals the
+                server is willing to satisfy.</dd>
+        </dl>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="MaxRanges" id="MaxRanges">MaxRanges</a> <a name="maxranges" id="maxranges">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of ranges allowed before returning the complete
+resource </td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MaxRanges default | unlimited | none | <var>number-of-ranges</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MaxRanges 200</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.15 and later</td></tr>
+</table>
+    <p>The <code class="directive">MaxRanges</code> directive
+    limits the number of HTTP ranges the server is willing to
+    return to the client.  If more ranges then permitted are requested,
+    the complete resource is returned instead.</p>
+
+    <dl>
+      <dt><strong>default</strong></dt>
+      <dd>Limits the number of ranges to a compile-time default of 200.</dd>
+
+      <dt><strong>none</strong></dt>
+      <dd>Range headers are ignored.</dd>
+
+      <dt><strong>unlimited</strong></dt>
+      <dd>The server does not limit the number of ranges it is
+          willing to satisfy.</dd>
+
+      <dt><var>number-of-ranges</var></dt>
+      <dd>A positive number representing the maximum number of ranges the
+      server is willing to satisfy.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Mutex" id="Mutex">Mutex</a> <a name="mutex" id="mutex">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures mutex mechanism and lock file directory for all
+or specified mutexes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Mutex <var>mechanism</var> [default|<var>mutex-name</var>] ... [OmitPID]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Mutex default</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.4 and later</td></tr>
 </table>
-    <p>The <code class="directive">NameVirtualHost</code> directive is a
-    required directive if you want to configure <a href="../vhosts/">name-based virtual hosts</a>.</p>
+    <p>The <code class="directive">Mutex</code> directive sets the mechanism,
+    and optionally the lock file location, that httpd and modules use
+    to serialize access to resources.  Specify <code>default</code> as
+    the first argument to change the settings for all mutexes; specify
+    a mutex name (see table below) as the first argument to override
+    defaults only for that mutex.</p>
 
-    <p>Although <var>addr</var> can be hostname it is recommended
-    that you always use an IP address, e.g.</p>
+    <p>The <code class="directive">Mutex</code> directive is typically used in
+    the following exceptional situations:</p>
 
-    <div class="example"><p><code>
-      NameVirtualHost 111.22.33.44
-    </code></p></div>
+    <ul>
+        <li>change the mutex mechanism when the default mechanism selected
+        by <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> has a functional or performance
+        problem</li>
 
-    <p>With the <code class="directive">NameVirtualHost</code> directive you
-    specify the IP address on which the server will receive requests
-    for the name-based virtual hosts. This will usually be the address
-    to which your name-based virtual host names resolve. In cases
-    where a firewall or other proxy receives the requests and forwards
-    them on a different IP address to the server, you must specify the
-    IP address of the physical interface on the machine which will be
-    servicing the requests. If you have multiple name-based hosts on
-    multiple addresses, repeat the directive for each address.</p>
+        <li>change the directory used by file-based mutexes when the
+        default directory does not support locking</li>
+    </ul>
 
-    <div class="note"><h3>Note</h3>
-      <p>Note, that the "main server" and any <code>_default_</code> servers
-      will <strong>never</strong> be served for a request to a
-      <code class="directive">NameVirtualHost</code> IP address (unless for some
-      reason you specify <code class="directive">NameVirtualHost</code> but then
-      don't define any <code class="directive">VirtualHost</code>s for that
-      address).</p>
+    <div class="note"><h3>Supported modules</h3>
+    <p>This directive only configures mutexes which have been registered
+    with the core server using the <code>ap_mutex_register()</code> API.
+    All modules bundled with httpd support the <code class="directive">Mutex</code>
+    directive, but third-party modules may not.  Consult the documentation
+    of the third-party module, which must indicate the mutex name(s) which
+    can be configured if this directive is supported.</p>
     </div>
 
-    <p>Optionally you can specify a port number on which the
-    name-based virtual hosts should be used, e.g.</p>
+    <p>The following mutex <em>mechanisms</em> are available:</p>
+    <ul>
+        <li><code>default | yes</code>
+        <p>This selects the default locking implementation, as determined by
+        <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a>.  The default locking implementation can
+        be displayed by running <code class="program"><a href="../programs/httpd.html">httpd</a></code> with the
+        <code>-V</code> option.</p></li>
+
+        <li><code>none | no</code>
+        <p>This effectively disables the mutex, and is only allowed for a
+        mutex if the module indicates that it is a valid choice.  Consult the
+        module documentation for more information.</p></li>
+
+        <li><code>posixsem</code>
+        <p>This is a mutex variant based on a Posix semaphore.</p>
+
+        <div class="warning"><h3>Warning</h3>
+        <p>The semaphore ownership is not recovered if a thread in the process
+        holding the mutex segfaults, resulting in a hang of the web server.</p>
+        </div>
+        </li>
+
+        <li><code>sysvsem</code>
+        <p>This is a mutex variant based on a SystemV IPC semaphore.</p>
+
+        <div class="warning"><h3>Warning</h3>
+        <p>It is possible to "leak" SysV semaphores if processes crash
+        before the semaphore is removed.</p>
+       </div>
+
+        <div class="warning"><h3>Security</h3>
+        <p>The semaphore API allows for a denial of service attack by any
+        CGIs running under the same uid as the webserver (<em>i.e.</em>,
+        all CGIs, unless you use something like <code class="program"><a href="../programs/suexec.html">suexec</a></code>
+        or <code>cgiwrapper</code>).</p>
+       </div>
+        </li>
+
+        <li><code>sem</code>
+        <p>This selects the "best" available semaphore implementation, choosing
+        between Posix and SystemV IPC semaphores, in that order.</p></li>
+
+        <li><code>pthread</code>
+        <p>This is a mutex variant based on cross-process Posix thread
+        mutexes.</p>
+
+        <div class="warning"><h3>Warning</h3>
+        <p>On most systems, if a child process terminates abnormally while
+        holding a mutex that uses this implementation, the server will deadlock
+        and stop responding to requests.  When this occurs, the server will
+        require a manual restart to recover.</p>
+        <p>Solaris is a notable exception as it provides a mechanism which
+        usually allows the mutex to be recovered after a child process
+        terminates abnormally while holding a mutex.</p>
+        <p>If your system implements the
+        <code>pthread_mutexattr_setrobust_np()</code> function, you may be able
+        to use the <code>pthread</code> option safely.</p>
+        </div>
+        </li>
+
+        <li><code>fcntl:/path/to/mutex</code>
+        <p>This is a mutex variant where a physical (lock-)file and the
+        <code>fcntl()</code> function are used as the mutex.</p>
+
+        <div class="warning"><h3>Warning</h3>
+        <p>When multiple mutexes based on this mechanism are used within
+        multi-threaded, multi-process environments, deadlock errors (EDEADLK)
+        can be reported for valid mutex operations if <code>fcntl()</code>
+        is not thread-aware, such as on Solaris.</p>
+       </div>
+        </li>
+
+        <li><code>flock:/path/to/mutex</code>
+        <p>This is similar to the <code>fcntl:/path/to/mutex</code> method
+        with the exception that the <code>flock()</code> function is used to
+        provide file locking.</p></li>
+
+        <li><code>file:/path/to/mutex</code>
+        <p>This selects the "best" available file locking implementation,
+        choosing between <code>fcntl</code> and <code>flock</code>, in that
+        order.</p></li>
+    </ul>
 
-    <div class="example"><p><code>
-      NameVirtualHost 111.22.33.44:8080
-    </code></p></div>
+    <p>Most mechanisms are only available on selected platforms, where the
+    underlying platform and <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> support it.  Mechanisms
+    which aren't available on all platforms are <em>posixsem</em>,
+    <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>,
+    <em>flock</em>, and <em>file</em>.</p>
+
+    <p>With the file-based mechanisms <em>fcntl</em> and <em>flock</em>,
+    the path, if provided, is a directory where the lock file will be created.
+    The default directory is httpd's run-time file directory relative to
+    <code class="directive"><a href="#serverroot">ServerRoot</a></code>.  Always use a local disk
+    filesystem for <code>/path/to/mutex</code> and never a directory residing
+    on a NFS- or AFS-filesystem.  The basename of the file will be the mutex
+    type, an optional instance string provided by the module, and unless the
+    <code>OmitPID</code> keyword is specified, the process id of the httpd
+    parent process will be appended to to make the file name unique, avoiding
+    conflicts when multiple httpd instances share a lock file directory.  For
+    example, if the mutex name is <code>mpm-accept</code> and the lock file
+    directory is <code>/var/httpd/locks</code>, the lock file name for the
+    httpd instance with parent process id 12345 would be
+    <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
 
-    <p>IPv6 addresses must be enclosed in square brackets, as shown
-    in the following example:</p>
+    <div class="warning"><h3>Security</h3>
+    <p>It is best to <em>avoid</em> putting mutex files 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>
+    </div>
 
-    <div class="example"><p><code>
-      NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080
-    </code></p></div>
+    <p>The following table documents the names of mutexes used by httpd
+    and bundled modules.</p>
+
+    <table class="bordered"><tr class="header">
+            <th>Mutex name</th>
+            <th>Module(s)</th>
+            <th>Protected resource</th>
+       </tr>
+<tr>
+            <td><code>mpm-accept</code></td>
+            <td><code class="module"><a href="../mod/prefork.html">prefork</a></code> and <code class="module"><a href="../mod/worker.html">worker</a></code> MPMs</td>
+            <td>incoming connections, to avoid the thundering herd problem;
+            for more information, refer to the
+            <a href="../misc/perf-tuning.html">performance tuning</a>
+            documentation</td>
+       </tr>
+<tr class="odd">
+            <td><code>authdigest-client</code></td>
+            <td><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></td>
+            <td>client list in shared memory</td>
+       </tr>
+<tr>
+            <td><code>authdigest-opaque</code></td>
+            <td><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></td>
+            <td>counter in shared memory</td>
+       </tr>
+<tr class="odd">
+            <td><code>ldap-cache</code></td>
+            <td><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></td>
+            <td>LDAP result cache</td>
+       </tr>
+<tr>
+            <td><code>rewrite-map</code></td>
+            <td><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></td>
+            <td>communication with external mapping programs, to avoid
+            intermixed I/O from multiple requests</td>
+       </tr>
+<tr class="odd">
+            <td><code>ssl-cache</code></td>
+            <td><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></td>
+            <td>SSL session cache</td>
+       </tr>
+<tr>
+            <td><code>ssl-stapling</code></td>
+            <td><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></td>
+            <td>OCSP stapling response cache</td>
+       </tr>
+<tr class="odd">
+            <td><code>watchdog-callback</code></td>
+            <td><code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code></td>
+            <td>callback function of a particular client module</td>
+       </tr>
+</table>
+
+    <p>The <code>OmitPID</code> keyword suppresses the addition of the httpd
+    parent process id from the lock file name.</p>
 
-    <p>To receive requests on all interfaces, you can use an argument of
-    <code>*</code></p>
+    <p>In the following example, the mutex mechanism for the MPM accept
+    mutex will be changed from the compiled-in default to <code>fcntl</code>,
+    with the associated lock file created in directory
+    <code>/var/httpd/locks</code>.  The mutex mechanism for all other mutexes
+    will be changed from the compiled-in default to <code>sysvsem</code>.</p>
 
     <div class="example"><p><code>
-      NameVirtualHost *
+    Mutex default sysvsem<br />
+    Mutex mpm-accept fcntl:/var/httpd/locks
     </code></p></div>
 
-    <div class="note"><h3>Argument to <code class="directive">&lt;VirtualHost&gt;</code>
-      directive</h3>
-      <p>Note that the argument to the <code class="directive">&lt;VirtualHost&gt;</code> directive must
-      exactly match the argument to the <code class="directive">NameVirtualHost</code> directive.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="NameVirtualHost" id="NameVirtualHost">NameVirtualHost</a> <a name="namevirtualhost" id="namevirtualhost">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>DEPRECATED: Designates an IP address for name-virtual
+hosting</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>NameVirtualHost <var>addr</var>[:<var>port</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
 
-      <div class="example"><p><code>
-        NameVirtualHost 1.2.3.4<br />
-        &lt;VirtualHost 1.2.3.4&gt;<br />
-        # ...<br />
-        &lt;/VirtualHost&gt;<br />
-      </code></p></div>
-    </div>
+<p>Prior to 2.3.11, <code class="directive">NameVirtualHost</code> was required
+to instruct the server that a particular IP address and port combination
+was usable as a name-based virtual host.  In 2.3.11 and later,
+any time an IP address and port combination is used in multiple virtual
+hosts, name-based virtual hosting is automatically enabled for that address.</p>
+
+<p>This directive currently has no effect.</p>
 
 <h3>See also</h3>
 <ul>
@@ -2293,11 +3240,12 @@ documentation</a></li>
 directory</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Options
     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Options All</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Options FollowSymlinks</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The default was changed from All to FollowSymlinks in 2.3.11</td></tr>
 </table>
     <p>The <code class="directive">Options</code> directive controls which
     server features are available in a particular directory.</p>
@@ -2309,8 +3257,7 @@ directory</td></tr>
     <dl>
       <dt><code>All</code></dt>
 
-      <dd>All options except for <code>MultiViews</code>. This is the default
-      setting.</dd>
+      <dd>All options except for <code>MultiViews</code>.</dd>
 
       <dt><code>ExecCGI</code></dt>
 
@@ -2321,8 +3268,8 @@ directory</td></tr>
       <dt><code>FollowSymLinks</code></dt>
 
       <dd>
-
-      The server will follow symbolic links in this directory.
+      The server will follow symbolic links in this directory. This is
+      the default setting.
       <div class="note">
       <p>Even though the server follows the symlink it does <em>not</em>
       change the pathname used to match against <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code> sections.</p>
@@ -2364,7 +3311,11 @@ directory</td></tr>
       <dd>
       <a href="../content-negotiation.html">Content negotiated</a>
       "MultiViews" are allowed using
-      <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>.</dd>
+      <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>.
+      <div class="note"><h3>Note</h3> <p>This option gets ignored if set
+      anywhere other than <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code>, as <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>
+      needs real resources to compare against and evaluate from.</p></div>
+      </dd>
 
       <dt><code>SymLinksIfOwnerMatch</code></dt>
 
@@ -2391,10 +3342,10 @@ directory</td></tr>
     <code>-</code> are removed from the options currently in
     force. </p>
 
-    <div class="warning"><h3>Warning</h3>
+    <div class="note"><h3>Note</h3>
     <p>Mixing <code class="directive">Options</code> with a <code>+</code> or
-    <code>-</code> with those without is not valid syntax, and is likely
-    to cause unexpected results.</p>
+    <code>-</code> with those without is not valid syntax, and will be
+    rejected during server startup by the syntax check with an abort.</p>
     </div>
 
     <p>For example, without any <code>+</code> and <code>-</code> symbols:</p>
@@ -2443,14 +3394,46 @@ directory</td></tr>
     </div>
 
     <p>The default in the absence of any other settings is
-    <code>All</code>.</p>
+    <code>FollowSymlinks</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Protocol" id="Protocol">Protocol</a> <a name="protocol" id="protocol">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Protocol for a listening socket</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Protocol <var>protocol</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1.5 and later.
+On Windows from Apache 2.3.3 and later.</td></tr>
+</table>
+    <p>This directive specifies the protocol used for a specific listening socket.
+       The protocol is used to determine which module should handle a request, and
+       to apply protocol specific optimizations with the <code class="directive">AcceptFilter</code>
+       directive.</p>
+
+    <p>You only need to set the protocol if you are running on non-standard ports, otherwise <code>http</code> is assumed for port 80 and <code>https</code> for port 443.</p>
+
+    <p>For example, if you are running <code>https</code> on a non-standard port, specify the protocol explicitly:</p>
+
+    <div class="example"><p><code>
+      Protocol https
+    </code></p></div>
 
+    <p>You can also specify the protocol using the <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> directive.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive">AcceptFilter</code></li>
+<li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="RLimitCPU" id="RLimitCPU">RLimitCPU</a> <a name="rlimitcpu" id="rlimitcpu">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the CPU consumption of processes launched
-by Apache children</td></tr>
+by Apache httpd children</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitCPU <var>seconds</var>|max [<var>seconds</var>|max]</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
@@ -2467,10 +3450,10 @@ by Apache children</td></tr>
     the server is running as <code>root</code>, or in the initial startup
     phase.</p>
 
-    <p>This applies to processes forked off from Apache children
-    servicing requests, not the Apache children themselves. This
+    <p>This applies to processes forked off from Apache httpd children
+    servicing requests, not the Apache httpd children themselves. This
     includes CGI scripts and SSI exec commands, but not any
-    processes forked off from the Apache parent such as piped
+    processes forked off from the Apache httpd parent such as piped
     logs.</p>
 
     <p>CPU resource limits are expressed in seconds per
@@ -2486,7 +3469,7 @@ by Apache children</td></tr>
 <div class="directive-section"><h2><a name="RLimitMEM" id="RLimitMEM">RLimitMEM</a> <a name="rlimitmem" id="rlimitmem">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the memory consumption of processes launched
-by Apache children</td></tr>
+by Apache httpd children</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitMEM <var>bytes</var>|max [<var>bytes</var>|max]</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
@@ -2503,10 +3486,10 @@ by Apache children</td></tr>
     the server is running as <code>root</code>, or in the initial startup
     phase.</p>
 
-    <p>This applies to processes forked off from Apache children
-    servicing requests, not the Apache children themselves. This
+    <p>This applies to processes forked off from Apache httpd children
+    servicing requests, not the Apache httpd children themselves. This
     includes CGI scripts and SSI exec commands, but not any
-    processes forked off from the Apache parent such as piped
+    processes forked off from the Apache httpd parent such as piped
     logs.</p>
 
     <p>Memory resource limits are expressed in bytes per
@@ -2522,7 +3505,7 @@ by Apache children</td></tr>
 <div class="directive-section"><h2><a name="RLimitNPROC" id="RLimitNPROC">RLimitNPROC</a> <a name="rlimitnproc" id="rlimitnproc">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the number of processes that can be launched by
-processes launched by Apache children</td></tr>
+processes launched by Apache httpd children</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitNPROC <var>number</var>|max [<var>number</var>|max]</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
@@ -2539,10 +3522,10 @@ processes launched by Apache children</td></tr>
     the server is running as <code>root</code>, or in the initial startup
     phase.</p>
 
-    <p>This applies to processes forked off from Apache children
-    servicing requests, not the Apache children themselves. This
+    <p>This applies to processes forked off from Apache httpd children
+    servicing requests, not the Apache httpd children themselves. This
     includes CGI scripts and SSI exec commands, but not any
-    processes forked off from the Apache parent such as piped
+    processes forked off from the Apache httpd parent such as piped
     logs.</p>
 
     <p>Process limits control the number of processes per user.</p>
@@ -2574,12 +3557,12 @@ scripts</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Win32 only;
-option <code>Registry-Strict</code> is available in Apache 2.0 and
+option <code>Registry-Strict</code> is available in Apache HTTP Server 2.0 and
 later</td></tr>
 </table>
-    <p>This directive is used to control how Apache finds the
+    <p>This directive is used to control how Apache httpd finds the
     interpreter used to run CGI scripts. The default setting is
-    <code>Script</code>. This causes Apache to use the interpreter pointed to
+    <code>Script</code>. This causes Apache httpd to use the interpreter pointed to
     by the shebang line (first line, starting with <code>#!</code>) in the
     script. On Win32 systems this line usually looks like:</p>
 
@@ -2599,13 +3582,13 @@ later</td></tr>
     search key. The command defined by the registry subkey
     <code>Shell\ExecCGI\Command</code> or, if it does not exist, by the subkey
     <code>Shell\Open\Command</code> is used to open the script file. If the
-    registry keys cannot be found, Apache falls back to the behavior of the
+    registry keys cannot be found, Apache httpd falls back to the behavior of the
     <code>Script</code> option.</p>
 
     <div class="warning"><h3>Security</h3>
     <p>Be careful when using <code>ScriptInterpreterSource
     Registry</code> with <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>'ed directories, because
-    Apache will try to execute <strong>every</strong> file within this
+    Apache httpd will try to execute <strong>every</strong> file within this
     directory. The <code>Registry</code> setting may cause undesired
     program calls on files which are typically not executed. For
     example, the default open command on <code>.htm</code> files on
@@ -2616,13 +3599,51 @@ later</td></tr>
     so.</p>
     </div>
 
-    <p>The option <code>Registry-Strict</code> which is new in Apache
+    <p>The option <code>Registry-Strict</code> which is new in Apache HTTP Server
     2.0 does the same thing as <code>Registry</code> but uses only the
     subkey <code>Shell\ExecCGI\Command</code>. The
     <code>ExecCGI</code> key is not a common one. It must be
     configured manually in the windows registry and hence prevents
     accidental program calls on your system.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SeeRequestTail" id="SeeRequestTail">SeeRequestTail</a> <a name="seerequesttail" id="seerequesttail">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determine if mod_status displays the first 63 characters
+of a request or the last 63, assuming the request itself is greater than
+63 chars.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SeeRequestTail On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SeeRequestTail Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache httpd 2.2.7 and later.</td></tr>
+</table>
+    <p>mod_status with <code>ExtendedStatus On</code>
+    displays the actual request being handled.
+    For historical purposes, only 63 characters of the request
+    are actually stored for display purposes. This directive
+    controls whether the 1st 63 characters are stored (the previous
+    behavior and the default) or if the last 63 characters are. This
+    is only applicable, of course, if the length of the request is
+    64 characters or greater.</p>
+
+    <p>If Apache httpd is handling <code>GET&nbsp;/disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg&nbsp;HTTP/1.1</code> mod_status displays as follows:
+    </p>
+
+    <table class="bordered">
+      <tr>
+        <th>Off (default)</th>
+        <td>GET&nbsp;/disk1/storage/apache/htdocs/images/imagestore1/food/apples</td>
+      </tr>
+      <tr>
+        <th>On</th>
+        <td>orage/apache/htdocs/images/imagestore1/food/apples.jpg&nbsp;HTTP/1.1</td>
+      </tr>
+    </table>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ServerAdmin" id="ServerAdmin">ServerAdmin</a> <a name="serveradmin" id="serveradmin">Directive</a></h2>
@@ -2669,16 +3690,19 @@ to name-virtual hosts</td></tr>
     <code class="directive">ServerAlias</code> may include wildcards, if appropriate.</p>
 
     <div class="example"><p><code>
-      &lt;VirtualHost *&gt;<br />
-      ServerName server.domain.com<br />
-      ServerAlias server server2.domain.com server2<br />
+      &lt;VirtualHost *:80&gt;<br />
+      ServerName server.example.com<br />
+      ServerAlias server server2.example.com server2<br />
+      ServerAlias *.example.com<br />
+      UseCanonicalName Off<br />
       # ...<br />
       &lt;/VirtualHost&gt;
     </code></p></div>
 
 <h3>See also</h3>
 <ul>
-<li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
+<li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
+<li><a href="../vhosts/">Apache HTTP Server Virtual Host documentation</a></li>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -2690,23 +3714,31 @@ itself</td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>In version 2.0, this
-     directive supersedes the functionality of the <code class="directive">Port</code>
-     directive from version 1.3.</td></tr>
 </table>
     <p>The <code class="directive">ServerName</code> directive sets the
     request scheme, hostname and
     port that the server uses to identify itself.  This is used when
-    creating redirection URLs. For example, if the name of the
+    creating redirection URLs.</p>
+
+    <p>Additionally, <code class="directive">ServerName</code> is used (possibly
+    in conjunction with <code class="directive">ServerAlias</code>) to uniquely
+    identify a virtual host, when using <a href="../vhosts/name-based.html">name-based virtual hosts</a>.</p>
+
+    <p>For example, if the name of the
     machine hosting the web server is <code>simple.example.com</code>,
     but the machine also has the DNS alias <code>www.example.com</code>
     and you wish the web server to be so identified, the following
     directive should be used:</p>
 
     <div class="example"><p><code>
-      ServerName www.example.com:80
+      ServerName www.example.com
     </code></p></div>
 
+    <p>The <code class="directive">ServerName</code> directive
+    may appear anywhere within the definition of a server. However,
+    each appearance overrides the previous appearance (within that
+    server).</p>
+
     <p>If no <code class="directive">ServerName</code> is specified, then the
     server attempts to deduce the hostname by performing a reverse
     lookup on the IP address. If no port is specified in the
@@ -2721,14 +3753,13 @@ itself</td></tr>
     section specifies what hostname must appear in the request's
     <code>Host:</code> header to match this virtual host.</p>
 
-
     <p>Sometimes, the server runs behind a device that processes SSL,
     such as a reverse proxy, load balancer or SSL offload
     appliance. When this is the case, specify the
     <code>https://</code> scheme and the port number to which the
     clients connect in the <code class="directive">ServerName</code> directive
     to make sure that the server generates the correct
-    self-referential URLs. 
+    self-referential URLs.
     </p>
 
     <p>See the description of the
@@ -2739,16 +3770,26 @@ itself</td></tr>
     specified port, or to the port number given in the client's request.
     </p>
 
+    <div class="warning">
+    <p>Failure to set <code class="directive">ServerName</code> to a name that
+    your server can resolve to an IP address will result in a startup
+    warning. <code>httpd</code> will then use whatever hostname it can
+    determine, using the system's <code>hostname</code> command. This
+    will almost never be the hostname you actually want.</p>
+    <div class="example"><p><code>
+    httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
+    </code></p></div>
+    </div>
+
 
 <h3>See also</h3>
 <ul>
 <li><a href="../dns-caveats.html">Issues Regarding DNS and
-    Apache</a></li>
-<li><a href="../vhosts/">Apache virtual host
+    Apache HTTP Server</a></li>
+<li><a href="../vhosts/">Apache HTTP Server virtual host
     documentation</a></li>
 <li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
 <li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
-<li><code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code></li>
 <li><code class="directive"><a href="#serveralias">ServerAlias</a></code></li>
 </ul>
 </div>
@@ -2767,7 +3808,7 @@ is accessed by an incompatible browser</td></tr>
 
 <h3>See also</h3>
 <ul>
-<li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
+<li><a href="../vhosts/">Apache HTTP Server Virtual Host documentation</a></li>
 </ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -2783,13 +3824,19 @@ is accessed by an incompatible browser</td></tr>
     <p>The <code class="directive">ServerRoot</code> directive sets the
     directory in which the server lives. Typically it will contain the
     subdirectories <code>conf/</code> and <code>logs/</code>. Relative
-    paths in other configuration directives (such as <code class="directive"><a href="#include">Include</a></code> or <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>, for example) are taken as 
+    paths in other configuration directives (such as <code class="directive"><a href="#include">Include</a></code> or <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>, for example) are taken as
     relative to this directory.</p>
 
     <div class="example"><h3>Example</h3><p><code>
       ServerRoot /home/httpd
     </code></p></div>
 
+    <p>The default location of <code class="directive">ServerRoot</code> may be
+    modified by using the <code>--prefix</code> argument to
+    <a href="../programs/configure.html"><code>configure</code></a>, and
+    most third-party distributions of the server have a different
+    default location from the one listed above.</p>
+
 
 <h3>See also</h3>
 <ul>
@@ -2853,6 +3900,11 @@ header</td></tr>
     information about compiled-in modules.</p>
 
     <dl>
+      <dt><code>ServerTokens Full</code> (or not specified)</dt>
+
+      <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.1
+      (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
+
       <dt><code>ServerTokens Prod[uctOnly]</code></dt>
 
       <dd>Server sends (<em>e.g.</em>): <code>Server:
@@ -2866,22 +3918,18 @@ header</td></tr>
       <dt><code>ServerTokens Minor</code></dt>
 
       <dd>Server sends (<em>e.g.</em>): <code>Server:
-      Apache/2.0</code></dd>
+      Apache/2.4</code></dd>
 
       <dt><code>ServerTokens Min[imal]</code></dt>
 
       <dd>Server sends (<em>e.g.</em>): <code>Server:
-      Apache/2.0.41</code></dd>
+      Apache/2.4.1</code></dd>
 
       <dt><code>ServerTokens OS</code></dt>
 
-      <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.0.41
+      <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.1
       (Unix)</code></dd>
 
-      <dt><code>ServerTokens Full</code> (or not specified)</dt>
-
-      <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.0.41
-      (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
     </dl>
 
     <p>This setting applies to the entire server, and cannot be
@@ -2890,6 +3938,14 @@ header</td></tr>
     <p>After version 2.0.44, this directive also controls the
     information presented by the <code class="directive"><a href="#serversignature">ServerSignature</a></code> directive.</p>
 
+    <div class="note">Setting <code class="directive">ServerTokens</code> to less than
+    <code>minimal</code> is not recommended because it makes it more
+    difficult to debug interoperational problems. Also note that
+    disabling the Server: header does nothing at all to make your
+    server more secure; the idea of "security through obscurity"
+    is a myth and leads to a false sense of safety.</div>
+
+
 <h3>See also</h3>
 <ul>
 <li><code class="directive"><a href="#serversignature">ServerSignature</a></code></li>
@@ -2905,7 +3961,7 @@ handler</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved into the core in Apache 2.0</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved into the core in Apache httpd 2.0</td></tr>
 </table>
     <p>When placed into an <code>.htaccess</code> file or a
     <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code> or
@@ -2936,9 +3992,11 @@ handler</td></tr>
 
     <p>You can override an earlier defined <code class="directive">SetHandler</code>
     directive by using the value <code>None</code>.</p>
-    <p><strong>Note:</strong> because SetHandler overrides default handlers,
+
+    <div class="note"><h3>Note</h3>
+    <p>Because <code class="directive">SetHandler</code> overrides default handlers,
     normal behaviour such as handling of URLs ending in a slash (/) as
-    directories or index files is suppressed.</p>
+    directories or index files is suppressed.</p></div>
 
 <h3>See also</h3>
 <ul>
@@ -3023,7 +4081,7 @@ certain events before failing a request</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
     <p>The <code class="directive">TimeOut</code> directive defines the length
-    of time Apache will wait for I/O in various circumstances:</p>
+    of time Apache httpd will wait for I/O in various circumstances:</p>
 
     <ol>
       <li>When reading data from the client, the length of time to
@@ -3050,14 +4108,13 @@ certain events before failing a request</td></tr>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="TraceEnable" id="TraceEnable">TraceEnable</a> <a name="traceenable" id="traceenable">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines the behaviour on <code>TRACE</code>
-requests</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines the behaviour on <code>TRACE</code> requests</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>TraceEnable on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 1.3.34, 2.0.55 and later</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 1.3.34, 2.0.55 and later</td></tr>
 </table>
     <p>This directive overrides the behavior of <code>TRACE</code> for both
     the core server and <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>.  The default
@@ -3068,13 +4125,28 @@ requests</td></tr>
     allowed) error to the client.</p>
 
     <p>Finally, for testing and diagnostic purposes only, request
-    bodies may be allowed using the non-compliant <code>TraceEnable 
+    bodies may be allowed using the non-compliant <code>TraceEnable
     extended</code> directive.  The core (as an origin server) will
     restrict the request body to 64k (plus 8k for chunk headers if
     <code>Transfer-Encoding: chunked</code> is used).  The core will
     reflect the full headers and all chunk headers with the response
     body.  As a proxy server, the request body is not restricted to 64k.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="UnDefine" id="UnDefine">UnDefine</a> <a name="undefine" id="undefine">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Undefine the existence of a variable</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UnDefine <var>parameter-name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+</table>
+    <p>Undoes the effect of a <code class="directive"><a href="#define">Define</a></code> or
+    of passing a <code>-D</code> argument to <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>
+    <p>This directive can be used to toggle the use of <code class="directive"><a href="#ifdefine">&lt;IfDefine&gt;</a></code> sections without needing to alter
+    <code>-D</code> arguments in any startup scripts.</p>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UseCanonicalName" id="UseCanonicalName">UseCanonicalName</a> <a name="usecanonicalname" id="usecanonicalname">Directive</a></h2>
@@ -3087,19 +4159,19 @@ port</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
-    <p>In many situations Apache must construct a <em>self-referential</em>
+    <p>In many situations Apache httpd must construct a <em>self-referential</em>
     URL -- that is, a URL that refers back to the same server. With
-    <code>UseCanonicalName On</code> Apache will use the hostname and port
+    <code>UseCanonicalName On</code> Apache httpd will use the hostname and port
     specified in the <code class="directive"><a href="#servername">ServerName</a></code>
     directive to construct the canonical name for the server. This name
     is used in all self-referential URLs, and for the values of
     <code>SERVER_NAME</code> and <code>SERVER_PORT</code> in CGIs.</p>
 
-    <p>With <code>UseCanonicalName Off</code> Apache will form
+    <p>With <code>UseCanonicalName Off</code> Apache httpd will form
     self-referential URLs using the hostname and port supplied by
     the client if any are supplied (otherwise it will use the
     canonical name, as defined above). These values are the same
-    that are used to implement <a href="../vhosts/name-based.html">name based virtual hosts</a>,
+    that are used to implement <a href="../vhosts/name-based.html">name-based virtual hosts</a>,
     and are available with the same clients. The CGI variables
     <code>SERVER_NAME</code> and <code>SERVER_PORT</code> will be
     constructed from the client supplied values as well.</p>
@@ -3109,19 +4181,19 @@ port</td></tr>
     names such as <code>www</code>. You'll notice that if the users
     type a shortname, and a URL which is a directory, such as
     <code>http://www/splat</code>, <em>without the trailing
-    slash</em> then Apache will redirect them to
-    <code>http://www.domain.com/splat/</code>. If you have
+    slash</em> then Apache httpd will redirect them to
+    <code>http://www.example.com/splat/</code>. If you have
     authentication enabled, this will cause the user to have to
     authenticate twice (once for <code>www</code> and once again
-    for <code>www.domain.com</code> -- see <a href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">the
+    for <code>www.example.com</code> -- see <a href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">the
     FAQ on this subject for more information</a>). But if
     <code class="directive">UseCanonicalName</code> is set <code>Off</code>, then
-    Apache will redirect to <code>http://www/splat/</code>.</p>
+    Apache httpd will redirect to <code>http://www/splat/</code>.</p>
 
     <p>There is a third option, <code>UseCanonicalName DNS</code>,
     which is intended for use with mass IP-based virtual hosting to
     support ancient clients that do not provide a
-    <code>Host:</code> header. With this option Apache does a
+    <code>Host:</code> header. With this option Apache httpd does a
     reverse DNS lookup on the server IP address that the client
     connected to in order to work out self-referential URLs.</p>
 
@@ -3143,40 +4215,46 @@ port</td></tr>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UseCanonicalPhysicalPort" id="UseCanonicalPhysicalPort">UseCanonicalPhysicalPort</a> <a name="usecanonicalphysicalport" id="usecanonicalphysicalport">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures how the server determines its own name and
-port</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures how the server determines its own port</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UseCanonicalPhysicalPort On|Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>UseCanonicalPhysicalPort Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
 </table>
-    <p>In many situations Apache must construct a <em>self-referential</em>
+    <p>In many situations Apache httpd must construct a <em>self-referential</em>
     URL -- that is, a URL that refers back to the same server. With
-    <code>UseCanonicalPhysicalPort On</code> Apache will, when
+    <code>UseCanonicalPhysicalPort On</code> Apache httpd will, when
     constructing the canonical port for the server to honor
     the <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> directive,
     provide the actual physical port number being used by this request
     as a potential port. With <code>UseCanonicalPhysicalPort Off</code>
-    Apache will not ever use the actual physical port number, instead
+    Apache httpd will not ever use the actual physical port number, instead
     relying on all configured information to construct a valid port number.</p>
 
     <div class="note"><h3>Note</h3>
-    <p>The ordering of when the physical port is used is as follows:<br /><br />
-     <code>UseCanonicalName On</code></p>
-     <ul>
-      <li>Port provided in <code>Servername</code></li>
+    <p>The ordering of the lookup when the physical port is used is as
+    follows:</p>
+     <dl>
+     <dt><code>UseCanonicalName On</code></dt>
+     <dd>
+     <ol>
+      <li>Port provided in <code class="directive"><a href="#servername">Servername</a></code></li>
       <li>Physical port</li>
       <li>Default port</li>
-     </ul>
-     <code>UseCanonicalName Off | DNS</code>
-     <ul>
+     </ol>
+     </dd>
+     <dt><code>UseCanonicalName Off | DNS</code></dt>
+     <dd>
+     <ol>
       <li>Parsed port from <code>Host:</code> header</li>
       <li>Physical port</li>
-      <li>Port provided in <code>Servername</code></li>
+      <li>Port provided in <code class="directive"><a href="#servername">Servername</a></code></li>
       <li>Default port</li>
-     </ul>
-    
+     </ol>
+     </dd>
+     </dl>
+
     <p>With <code>UseCanonicalPhysicalPort Off</code>, the
     physical ports are removed from the ordering.</p>
     </div>
@@ -3208,7 +4286,8 @@ hostname or IP address</td></tr>
     used. When the server receives a request for a document on a
     particular virtual host, it uses the configuration directives
     enclosed in the <code class="directive">&lt;VirtualHost&gt;</code>
-    section. <var>Addr</var> can be:</p>
+    section. <var>Addr</var> can be any of the following, optionally followed by
+    a colon and a port number (or *):</p>
 
     <ul>
       <li>The IP address of the virtual host;</li>
@@ -3216,15 +4295,15 @@ hostname or IP address</td></tr>
       <li>A fully qualified domain name for the IP address of the
       virtual host (not recommended);</li>
 
-      <li>The character <code>*</code>, which is used only in combination with
-      <code>NameVirtualHost *</code> to match all IP addresses; or</li>
+      <li>The character <code>*</code>, which acts as a wildcard and matches
+      any IP address.</li>
+
+      <li>The string <code>_default_</code>, which is an alias for <code>*</code></li>
 
-      <li>The string <code>_default_</code>, which is used only
-      with IP virtual hosting to catch unmatched IP addresses.</li>
     </ul>
 
     <div class="example"><h3>Example</h3><p><code>
-      &lt;VirtualHost 10.1.2.3&gt;<br />
+      &lt;VirtualHost 10.1.2.3:80&gt;<br />
       <span class="indent">
         ServerAdmin webmaster@host.example.com<br />
         DocumentRoot /www/docs/host.example.com<br />
@@ -3241,7 +4320,7 @@ hostname or IP address</td></tr>
     IPv6 example is shown below:</p>
 
     <div class="example"><p><code>
-      &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]&gt;<br />
+      &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;<br />
       <span class="indent">
         ServerAdmin webmaster@host.example.com<br />
         DocumentRoot /www/docs/host.example.com<br />
@@ -3262,35 +4341,30 @@ hostname or IP address</td></tr>
 
     <div class="note"><h3>Note</h3>
     <p>The use of <code class="directive">&lt;VirtualHost&gt;</code> does
-    <strong>not</strong> affect what addresses Apache listens on. You
-    may need to ensure that Apache is listening on the correct addresses
+    <strong>not</strong> affect what addresses Apache httpd listens on. You
+    may need to ensure that Apache httpd is listening on the correct addresses
     using <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
     </div>
 
-    <p>When using IP-based virtual hosting, the special name
-    <code>_default_</code> can be specified in
-    which case this virtual host will match any IP address that is
-    not explicitly listed in another virtual host. In the absence
-    of any <code>_default_</code> virtual host the "main" server config,
-    consisting of all those definitions outside any VirtualHost
-    section, is used when no IP-match occurs.  (But note that any IP
-    address that matches a <code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code> directive will use neither
-    the "main" server config nor the <code>_default_</code> virtual host.
-    See the <a href="../vhosts/name-based.html">name-based virtual hosting</a>
-    documentation for further details.)</p>
-
-    <p>You can specify a <code>:port</code> to change the port that is
-    matched. If unspecified then it defaults to the same port as the
-    most recent <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>
-    statement of the main server. You may also specify <code>:*</code>
-    to match all ports on that address. (This is recommended when used
-    with <code>_default_</code>.)</p>
-
     <p>A <code class="directive"><a href="#servername">ServerName</a></code> should be
     specified inside each <code class="directive">&lt;VirtualHost&gt;</code> block. If it is absent, the
     <code class="directive"><a href="#servername">ServerName</a></code> from the "main"
     server configuration will be inherited.</p>
 
+    <p>When a request is received, the server first maps it to the best matching
+    <code class="directive">&lt;VirtualHost&gt;</code> based on the local
+    IP address and port combination only.  Non-wildcards have a higher
+    precedence. If no match based on IP and port occurs at all, the
+    "main" server configuration is used.</p>
+
+    <p>If multiple virtual hosts contain the best matching IP address and port,
+    the server selects from these virtual hosts the best match based on the
+    requested hostname.  If no matching name-based virtual host is found,
+    then the first listed virtual host that matched the IP address will be
+    used.  As a consequence, the first listed virtual host for a given IP address
+    and port combination is default virtual host for that IP and port
+    combination.</p>
+
     <div class="warning"><h3>Security</h3>
     <p>See the <a href="../misc/security_tips.html">security tips</a>
     document for details on why your security could be compromised if the
@@ -3300,11 +4374,11 @@ hostname or IP address</td></tr>
 
 <h3>See also</h3>
 <ul>
-<li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
+<li><a href="../vhosts/">Apache HTTP Server Virtual Host documentation</a></li>
 <li><a href="../dns-caveats.html">Issues Regarding DNS and
-    Apache</a></li>
+    Apache HTTP Server</a></li>
 <li><a href="../bind.html">Setting
-    which addresses and ports Apache uses</a></li>
+    which addresses and ports Apache HTTP Server uses</a></li>
 <li><a href="../sections.html">How &lt;Directory&gt;, &lt;Location&gt;
     and &lt;Files&gt; sections work</a> for an explanation of how these
     different sections are combined when a request is received</li>
@@ -3314,9 +4388,11 @@ hostname or IP address</td></tr>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
 <a href="../en/mod/core.html" title="English">&nbsp;en&nbsp;</a> |
+<a href="../es/mod/core.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/mod/core.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div><div id="footer">
-<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
 </body></html>
\ No newline at end of file