<title>core - Apache HTTP Server</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
+<script src="../style/scripts/prettify.js" type="text/javascript">
+</script>
+
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
-<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>
-<p class="apache">Apache HTTP Server Version 2.3</p>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
+<p class="apache">Apache HTTP Server Version 2.5</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Core Features</h1>
<div class="toplang">
<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="#defaultruntimedir">DefaultRuntimeDir</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#defaulttype">DefaultType</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#define">Define</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#directory"><Directory></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifdefine"><IfDefine></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifmodule"><IfModule></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#include">Include</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#includeoptional">IncludeOptional</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#keepalive">KeepAlive</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#keepalivetimeout">KeepAliveTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limit"><Limit></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="#registerhttpmethod">RegisterHttpMethod</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="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#virtualhost"><VirtualHost></a></li>
</ul>
-</div>
+<ul class="seealso"><li><a href="#comments_section">Comments</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="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directive</a></h2>
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 <code class="directive">Protocol</code>type.
+ 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&sektion=9">
<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>
+ <pre class="prettyprint lang-config">
+ AcceptFilter nntp none
+ </pre>
+
<p>The default protocol names are <code>https</code> for port 443
and <code>http</code> for all other ports. To specify another protocol
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>
+ <pre class="prettyprint lang-config">
+AcceptFilter http httpready
+AcceptFilter https dataready
+ </pre>
+
<p>The <code>httpready</code> accept filter buffers entire HTTP requests at
the kernel level. Once an entire request is received, the kernel then
accf_data(9)</a> filter is used.</p>
<p>The default values on Linux are:</p>
- <div class="example"><p><code>
- AcceptFilter http data <br />
- AcceptFilter https data
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AcceptFilter http data
+AcceptFilter https data
+ </pre>
+
<p>Linux's <code>TCP_DEFER_ACCEPT</code> does not support buffering http
requests. Any value besides <code>none</code> will enable
tcp(7)</a> man page.</p>
<p>The default values on Windows are:</p>
- <div class="example"><p><code>
- AcceptFilter http data <br />
- AcceptFilter https data
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AcceptFilter http data
+AcceptFilter https data
+ </pre>
+
<p>Window's mpm_winnt interprets the AcceptFilter to toggle the AcceptEx()
API, and does not support http protocol buffering. There are two values
<h3>See also</h3>
<ul>
-<li><code class="directive">Protocol</code></li>
+<li><code class="directive"><a href="#protocol">Protocol</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
the request, so you can use the following configuration to enable
such a script:</p>
- <div class="example"><p><code>
- <Files "mypaths.shtml"><br />
- <span class="indent">
- Options +Includes<br />
- SetOutputFilter INCLUDES<br />
- AcceptPathInfo On<br />
- </span>
- </Files>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Files "mypaths.shtml">
+ Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+</Files>
+ </pre>
+
</div>
configuration files are <a href="#allowoverride">enabled for that
directory</a>. For example:</p>
- <div class="example"><p><code>
- AccessFileName .acl
- </code></p></div>
+ <pre class="prettyprint lang-config">AccessFileName .acl</pre>
+
<p>before returning the document
<code>/usr/local/web/index.html</code>, the server will read
<code>/usr/local/.acl</code> and <code>/usr/local/web/.acl</code>
for directives, unless they have been disabled with</p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- AllowOverride None<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ AllowOverride None
+</Directory>
+ </pre>
+
<h3>See also</h3>
<ul>
charset values</a> for use in Internet media types (MIME types).
For example:</p>
- <div class="example"><p><code>
- AddDefaultCharset utf-8
- </code></p></div>
+ <pre class="prettyprint lang-config">AddDefaultCharset utf-8</pre>
+
<p><code class="directive">AddDefaultCharset</code> should only be used when all
of the text resources to which it applies are known to be in that
<dd>
- Allow use of the authorization directives (<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code>,
+ Allow use of the authorization directives (<code class="directive"><a href="../mod/mod_authz_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code>,
<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>,
<code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>,
<code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code>,
<code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code>, and
<code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code> Add* and Remove* directives),
document meta data (<code class="directive"><a href="../mod/mod_headers.html#header">Header</a></code>, <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookieexpires">CookieExpires</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiedomain">CookieDomain</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiestyle">CookieStyle</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookietracking">CookieTracking</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiename">CookieName</a></code>),
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriteengine">RewriteEngine</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriteoptions">RewriteOptions</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>) and
+ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> directives (<code class="directive"><a href="../mod/mod_rewrite.html#rewriteengine">RewriteEngine</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriteoptions">RewriteOptions</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>),
+ <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> directives (<code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirecttemp">RedirectTemp</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirectpermanent">RedirectPermanent</a></code>, <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code>), and
<code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> from
<code class="module"><a href="../mod/mod_actions.html">mod_actions</a></code>.
</dd>
(<code class="directive"><a href="../mod/mod_autoindex.html#adddescription">AddDescription</a></code>,
<code class="directive"><a href="../mod/mod_autoindex.html#addicon">AddIcon</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></code>,
<code class="directive"><a href="../mod/mod_autoindex.html#addiconbytype">AddIconByType</a></code>,
- <code class="directive"><a href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a></code>, <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#fancyindexing">FancyIndexing</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#headername">HeaderName</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexignore">IndexIgnore</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexoptions">IndexOptions</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#readmename">ReadmeName</a></code>,
+ <code class="directive"><a href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a></code>, <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>, , <code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code>,<a href="mod_autoindex.html#indexoptions.fancyindexing"><code>FancyIndexing</code></a>, <code class="directive"><a href="../mod/mod_autoindex.html#headername">HeaderName</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexignore">IndexIgnore</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexoptions">IndexOptions</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#readmename">ReadmeName</a></code>,
<em>etc.</em>).</dd>
<dt>Limit</dt>
<dd>
- Allow use of the directives controlling host access (<code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> and <code class="directive"><a href="../mod/mod_authz_host.html#order">Order</a></code>).</dd>
+ Allow use of the directives controlling host access (<code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> and <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>).</dd>
+
+
+
+
+ <dt>Nonfatal=[Override|Unknown|All]</dt>
+
+ <dd>
+ Allow use of AllowOverride option to treat syntax errors in
+ .htaccess as non-fatal: instead of causing an Internal Server
+ Error, disallowed or unrecognised directives will be ignored
+ and a warning logged:
+ <ul>
+ <li><strong>Nonfatal=Override</strong> treats directives
+ forbidden by AllowOverride as non-fatal.</li>
+ <li><strong>Nonfatal=Unknown</strong> treats unknown directives
+ as non-fatal. This covers typos and directives implemented
+ by a module that's not present.</li>
+ <li><strong>Nonfatal=All</strong> treats both the above as non-fatal.</li>
+ </ul>
+ <p>Note that a syntax error in a valid directive will still cause
+ an internal server error.</p>
+ <div class="warning"><h3>Security</h3>
+ Nonfatal errors may have security implications for .htaccess users.
+ For example, if AllowOverride disallows AuthConfig, users'
+ configuration designed to restrict access to a site will be disabled.
+ </div>
+ </dd>
<dt>Options[=<var>Option</var>,...]</dt>
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>
+
+ <div class="example"><p><code>
+ AllowOverride Options=Indexes,MultiViews
+ </code></p></div>
</dd>
</dl>
<p>Example:</p>
- <div class="example"><p><code>
- AllowOverride AuthConfig Indexes
- </code></p></div>
+ <pre class="prettyprint lang-config">AllowOverride AuthConfig Indexes</pre>
+
<p>In the example above all directives that are neither in the group
<code>AuthConfig</code> nor <code>Indexes</code> cause an internal
<p>Example:</p>
- <div class="example"><p><code>
- AllowOverride None<br />
- AllowOverrideList Redirect RedirectMatch
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AllowOverride None
+AllowOverrideList Redirect RedirectMatch
+ </pre>
+
<p>In the example above only the <code>Redirect</code> and
<code>RedirectMatch</code> directives are allowed. All others will
<p>Example:</p>
- <div class="example"><p><code>
- AllowOverride AuthConfig<br />
- AllowOverrideList CookieTracking CookieName
- </code></p></div>
+ <pre class="prettyprint lang-config">
+AllowOverride AuthConfig
+AllowOverrideList CookieTracking CookieName
+ </pre>
+
<p>In the example above <code class="directive"><a href="#allowoverride ">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
+ permission to only two directives from the <code>FileInfo</code> directive
grouping. All others will cause an internal server error.</p>
<h3>See also</h3>
SSI documents, output from CGI scripts, and byte range responses
do not have this header.</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="DefaultRuntimeDir" id="DefaultRuntimeDir">DefaultRuntimeDir</a> <a name="defaultruntimedir" id="defaultruntimedir">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Base directory for the server run-time files</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DefaultRuntimeDir <var>directory-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</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>The <code class="directive">DefaultRuntimeDir</code> directive sets the
+ directory in which the server will create various run-time files
+ (shared memory, locks, etc.). If set as a relative path, the full path
+ will be relative to <code class="directive">ServerRoot</code>.</p>
+
+ <p><strong>Example</strong></p>
+ <pre class="prettyprint lang-config">
+DefaultRuntimeDir scratch/
+ </pre>
+
+
+ <p>The default location of <code class="directive">DefaultRuntimeDir</code> may be
+ modified by changing the <code>DEFAULT_REL_RUNTIMEDIR</code> #define
+ at build time.</p>
+
+ <p>Note: <code class="directive">ServerRoot</code> should be specified before this
+ directive is used, otherwise the default value of <code class="directive">ServerRoot</code>
+ would be used to set the base directory.</p>
+
+
+<h3>See also</h3>
+<ul>
+<li><a href="../misc/security_tips.html#serverroot">the
+ security tips</a> for information on how to properly set
+ permissions on the <code class="directive">ServerRoot</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="DefaultType" id="DefaultType">DefaultType</a> <a name="defaulttype" id="defaulttype">Directive</a></h2>
of configuration files, it may be specified with the value
<code>none</code>, meaning no default media type. For example:</p>
- <div class="example"><p><code>
- DefaultType None
- </code></p></div>
+ <pre class="prettyprint lang-config">DefaultType None</pre>
+
<p><code>DefaultType None</code> is only available in
httpd-2.2.7 and later.</p>
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>
- <IfDefine TEST><br />
- Define servername test.example.com<br />
- </IfDefine><br />
- <IfDefine !TEST><br />
- Define servername www.example.com<br />
- Define SSL<br />
- </IfDefine><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<IfDefine TEST>
+ Define servername test.example.com
+</IfDefine>
+<IfDefine !TEST>
+ Define servername www.example.com
+ Define SSL
+</IfDefine>
+
+ DocumentRoot /var/www/${servername}/htdocs
+ </pre>
+
<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>
<code>/home/user/public_html</code>, but <code><Directory
/home/*/public_html></code> will match. Example:</p>
- <div class="example"><p><code>
- <Directory /usr/local/httpd/htdocs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/usr/local/httpd/htdocs">
+ Options Indexes FollowSymLinks
+</Directory>
+ </pre>
+
<div class="note">
<p>Be careful with the <var>directory-path</var> arguments:
expressions</a> can also be used, with the addition of the
<code>~</code> character. For example:</p>
- <div class="example"><p><code>
- <Directory ~ "^/www/.*/[0-9]{3}">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory ~ "^/www/[0-9]{3}">
+
+</Directory>
+</pre>
+
<p>would match directories in <code>/www/</code> that consisted of
three numbers.</p>
first, interspersed with the directives from the <a href="#accessfilename">.htaccess</a> files. For example,
with</p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- AllowOverride None<br />
- </span>
- </Directory><br />
- <br />
- <Directory /home><br />
- <span class="indent">
- AllowOverride FileInfo<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ AllowOverride None
+</Directory>
+
+<Directory "/home">
+ AllowOverride FileInfo
+</Directory>
+ </pre>
+
<p>for access to the document <code>/home/web/dir/doc.html</code>
the steps are:</p>
expressions are tested in the order they appeared in the
configuration file. For example, with</p>
- <div class="example"><p><code>
- <Directory ~ abc$><br />
- <span class="indent">
- # ... directives here ...<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory ~ "abc$">
+ # ... directives here ...
+</Directory>
+ </pre>
+
<p>the regular expression section won't be considered until after
all normal <code class="directive"><Directory></code>s and
recommended that you change this with a block such
as</strong></p>
- <div class="example"><p><code>
- <Directory /><br />
- <span class="indent">
- Require all denied<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory />
+ Require all denied
+</Directory>
+ </pre>
+
<p><strong>and then override this for directories you
<em>want</em> accessible. See the <a href="../misc/security_tips.html">Security Tips</a> page for more
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>
- <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<DirectoryMatch "^/www/(.+/)?[0-9]{3}">
+ # ...
+</DirectoryMatch>
+</pre>
+
<p>would match directories in <code>/www/</code> that consisted of three
numbers.</p>
path from the requested URL to the document root to make the
path to the document. Example:</p>
- <div class="example"><p><code>
- DocumentRoot /usr/web
- </code></p></div>
+ <pre class="prettyprint lang-config">DocumentRoot "/usr/web"</pre>
+
<p>then an access to
<code>http://my.example.com/index.html</code> refers to
in the same scope has not been applied.
For example: In </p>
- <div class="example"><p><code>
- <If "-z req('Host')"><br />
- ...<br />
- </If><br />
- <Else><br />
- ...<br />
- </Else><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<If "-z req('Host')">
+ # ...
+</If>
+<Else>
+ # ...
+</Else>
+ </pre>
+
<p> The <code class="directive"><If></code> would match HTTP/1.0
requests without a <var>Host:</var> header and the
<code class="directive"><ElseIf></code> section in the same scope has
not been applied. For example: In </p>
- <div class="example"><p><code>
- <If "-R '10.1.0.0/16'"><br />
- ...<br />
- </If><br />
- <ElseIf "-R '10.0.0.0/8'"><br />
- ...<br />
- </ElseIf><br />
- <Else><br />
- ...<br />
- </Else><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<If "-R '10.1.0.0/16'">
+ #...
+</If>
+<ElseIf "-R '10.0.0.0/8'">
+ #...
+</ElseIf>
+<Else>
+ #...
+</Else>
+ </pre>
+
<p>The <code class="directive"><ElseIf></code> would match if
the remote address of a request belongs to the subnet 10.0.0.0/8 but
<p>For server configurations that are vulnerable to these problems,
you should disable memory-mapping of delivered files by specifying:</p>
- <div class="example"><p><code>
- EnableMMAP Off
- </code></p></div>
+ <pre class="prettyprint lang-config">EnableMMAP Off</pre>
+
<p>For NFS mounted files, this feature may be disabled explicitly for
the offending files by specifying:</p>
- <div class="example"><p><code>
- <Directory "/path-to-nfs-files">
- <span class="indent">
- EnableMMAP Off
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/path-to-nfs-files">
+ EnableMMAP Off
+</Directory>
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<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 On
- </code></p></div>
+ <pre class="prettyprint lang-config">EnableSendfile On</pre>
+
<p>For network mounted files, this feature may be disabled explicitly
for the offending files by specifying:</p>
- <div class="example"><p><code>
- <Directory "/path-to-nfs-files">
- <span class="indent">
- EnableSendfile Off
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/path-to-nfs-files">
+ EnableSendfile Off
+</Directory>
+ </pre>
+
<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>.
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 />
- <IfModule !include_module><br />
- Error mod_include is required by mod_foo. Load it with LoadModule.<br />
- </IfModule><br />
- <br />
- # ensure that exactly one of SSL,NOSSL is defined<br />
- <IfDefine SSL><br />
- <IfDefine NOSSL><br />
- Error Both SSL and NOSSL are defined. Define only one of them.<br />
- </IfDefine><br />
- </IfDefine><br />
- <IfDefine !SSL><br />
- <IfDefine !NOSSL><br />
- Error Either SSL or NOSSL must be defined.<br />
- </IfDefine><br />
- </IfDefine><br />
- </code></p></div>
+ <pre class="prettyprint lang-config">
+# Example
+# ensure that mod_include is loaded
+<IfModule !include_module>
+ Error "mod_include is required by mod_foo. Load it with LoadModule."
+</IfModule>
+
+# ensure that exactly one of SSL,NOSSL is defined
+<IfDefine SSL>
+<IfDefine NOSSL>
+ Error "Both SSL and NOSSL are defined. Define only one of them."
+</IfDefine>
+</IfDefine>
+<IfDefine !SSL>
+<IfDefine !NOSSL>
+ Error "Either SSL or NOSSL must be defined."
+</IfDefine>
+</IfDefine>
+ </pre>
+
</div>
full URL which the client can resolve. Alternatively, a message
can be provided to be displayed by the browser. Examples:</p>
- <div class="example"><p><code>
- ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br />
- ErrorDocument 404 /cgi-bin/bad_urls.pl<br />
- ErrorDocument 401 /subscription_info.html<br />
- ErrorDocument 403 "Sorry can't allow you access today"<br />
- ErrorDocument 403 Forbidden!
- </code></p></div>
+ <pre class="prettyprint lang-config">
+ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ErrorDocument 404 /cgi-bin/bad_urls.pl
+ErrorDocument 401 /subscription_info.html
+ErrorDocument 403 "Sorry can't allow you access today"
+ErrorDocument 403 Forbidden!
+ </pre>
+
<p>Additionally, the special value <code>default</code> can be used
to specify Apache httpd's simple hardcoded message. While not required
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>
- ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br />
- <Directory /web/docs><br />
- <span class="indent">
- ErrorDocument 404 default<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+ErrorDocument 404 /cgi-bin/bad_urls.pl
+
+<Directory /web/docs>
+ ErrorDocument 404 default
+</Directory>
+ </pre>
+
<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
error rather than masking it. More information is available in
Microsoft Knowledge Base article <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807">Q294807</a>.</p>
- <p>Although most error messages can be overriden, there are certain
+ <p>Although most error messages can be overridden, there are certain
circumstances where the internal messages are used regardless of the
setting of <code class="directive"><a href="#errordocument">ErrorDocument</a></code>. In
particular, if a malformed request is detected, normal request processing
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>
- ErrorLog /var/log/httpd/error_log
- </code></p></div>
+ <pre class="prettyprint lang-config">ErrorLog "/var/log/httpd/error_log"</pre>
+
<p>If the <var>file-path</var>
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>
+ <pre class="prettyprint lang-config">ErrorLog "|/usr/local/bin/httpd_errors"</pre>
+
<p>See the notes on <a href="../logs.html#piped">piped logs</a> for
more information.</p>
in individual virtual hosts, the final facility specified affects the
entire server.</p>
- <div class="example"><h3>Example</h3><p><code>
- ErrorLog syslog:user
- </code></p></div>
+ <pre class="prettyprint lang-config">ErrorLog syslog:user</pre>
+
<p>SECURITY: See the <a href="../misc/security_tips.html#serverroot">security tips</a>
document for details on why your security could be compromised
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>
+ <pre class="prettyprint lang-config">
+#Simple example
+ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
+ </pre>
+
<p>Specifying <code>connection</code> or <code>request</code> as first
parameter allows to specify additional formats, causing additional
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 behavior is to delete everything from the preceeding
+ produced, the default behavior is to delete everything from the preceding
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
+ omitted. For example, if the remote address <code>%a</code> in the log
format <code>[%t] [%l] [%a] %M </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 '% '
- (percent space) is a zero-witdh field delimiter that does not produce any
+ (percent space) is a zero-width field delimiter that does not produce any
output.</p>
<p>The above behavior can be changed by adding modifiers to the format
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>
+ omitted.</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
<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>Client IP address and port of the request</td></tr>
+<tr><td><code>%{c}a</code></td>
+ <td>Underlying peer IP address and port of the connection (see the
+ <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code> module)</td></tr>
+<tr class="odd"><td><code>%A</code></td>
<td>Local IP-address and port</td></tr>
-<tr class="odd"><td><code>%{<em>name</em>}e</code></td>
+<tr><td><code>%{<em>name</em>}e</code></td>
<td>Request environment variable <em>name</em></td></tr>
-<tr><td><code>%E</code></td>
+<tr class="odd"><td><code>%E</code></td>
<td>APR/OS error status code and string</td></tr>
-<tr class="odd"><td><code>%F</code></td>
+<tr><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>
+<tr class="odd"><td><code>%{<em>name</em>}i</code></td>
<td>Request header <em>name</em></td></tr>
-<tr class="odd"><td><code>%k</code></td>
+<tr><td><code>%k</code></td>
<td>Number of keep-alive requests on this connection</td></tr>
-<tr><td><code>%l</code></td>
+<tr class="odd"><td><code>%l</code></td>
<td>Loglevel of the message</td></tr>
-<tr class="odd"><td><code>%L</code></td>
+<tr><td><code>%L</code></td>
<td>Log ID of the request</td></tr>
-<tr><td><code>%{c}L</code></td>
+<tr class="odd"><td><code>%{c}L</code></td>
<td>Log ID of the connection</td></tr>
-<tr class="odd"><td><code>%{C}L</code></td>
+<tr><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>
+<tr class="odd"><td><code>%m</code></td>
<td>Name of the module logging the message</td></tr>
-<tr class="odd"><td><code>%M</code></td>
+<tr><td><code>%M</code></td>
<td>The actual log message</td></tr>
-<tr><td><code>%{<em>name</em>}n</code></td>
+<tr class="odd"><td><code>%{<em>name</em>}n</code></td>
<td>Request note <em>name</em></td></tr>
-<tr class="odd"><td><code>%P</code></td>
+<tr><td><code>%P</code></td>
<td>Process ID of current process</td></tr>
-<tr><td><code>%T</code></td>
+<tr class="odd"><td><code>%T</code></td>
<td>Thread ID of current thread</td></tr>
-<tr class="odd"><td><code>%{g}T</code></td>
+<tr><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>
+<tr class="odd"><td><code>%t</code></td>
<td>The current time</td></tr>
-<tr class="odd"><td><code>%{u}t</code></td>
+<tr><td><code>%{u}t</code></td>
<td>The current time including micro-seconds</td></tr>
-<tr><td><code>%{cu}t</code></td>
+<tr class="odd"><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>
+<tr><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>
+<tr class="odd"><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>\ </code> (backslash space)</td>
+<tr><td><code>\ </code> (backslash space)</td>
<td>Non-field delimiting space</td></tr>
-<tr><td><code>% </code> (percent space)</td>
+<tr class="odd"><td><code>% </code> (percent space)</td>
<td>Field delimiter (no output)</td></tr>
</table>
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% ,\ referer\ %{Referer}i"
- </code></p></div>
+ <pre class="prettyprint lang-config">
+#Example (default format)
+ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
+ </pre>
+
<p>This would result in error messages such as:</p>
- <div class="example"><p><code>
+ <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
+ <p>Notice that, as discussed above, some fields are omitted
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% ,\ referer\ %{Referer}i"
- </code></p></div>
+ <pre class="prettyprint lang-config">
+#Example (similar to the 2.2.x format)
+ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
+ </pre>
+
+
+ <pre class="prettyprint lang-config">
+#Advanced example with request/connection log IDs
+ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
+ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
+ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
+ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
+ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
+ </pre>
- <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>
<dd>The number of bytes in the file will be included</dd>
<dt><strong>All</strong></dt>
<dd>All available fields will be used. This is equivalent to:
- <div class="example"><p><code>FileETag INode MTime Size</code></p></div></dd>
+ <pre class="prettyprint lang-config">FileETag INode MTime Size</pre>
+</dd>
<dt><strong>None</strong></dt>
<dd>If a document is file-based, no <code>ETag</code> field will be
included in the response</dd>
<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>
+ and <code>*</code> matches any sequences of characters.</p>
+ <pre class="prettyprint lang-config">
+<Files "cat.html">
+ # Insert stuff that applies to cat.html here
+</Files>
+
+<Files "?at.*">
+ # This would apply to cat.html, bat.html, hat.php and so on.
+</Files>
+</pre>
+
+ <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>
- <div class="example"><p><code>
- <Files ~ "\.(gif|jpe?g|png)$">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Files ~ "\.(gif|jpe?g|png)$">
+ #...
+</Files>
+</pre>
+
<p>would match most common Internet graphics formats. <code class="directive"><a href="#filesmatch"><FilesMatch></a></code> is preferred,
however.</p>
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>
- <FilesMatch "\.(gif|jpe?g|png)$">
- </code></p></div>
+<pre class="prettyprint lang-config">
+<FilesMatch "\.(gif|jpe?g|png)$">
+ # ...
+</FilesMatch>
+</pre>
+
<p>would match most common Internet graphics formats.</p>
GIF files, but did not want to label them all with <code>.gif</code>,
you might want to use:</p>
- <div class="example"><p><code>
- ForceType image/gif
- </code></p></div>
+ <pre class="prettyprint lang-config">ForceType image/gif</pre>
+
<p>Note that this directive overrides other indirect media type
associations defined in mime.types or via the
<code class="directive">ForceType</code> settings
by using the value of <code>None</code>:</p>
- <div class="example"><p><code>
- # force all files to be image/gif:<br />
- <Location /images><br />
- <span class="indent">
- ForceType image/gif<br />
- </span>
- </Location><br />
- <br />
- # but normal mime-type associations here:<br />
- <Location /images/mixed><br />
- <span class="indent">
- ForceType None<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+# force all files to be image/gif:
+<Location /images>
+ ForceType image/gif
+</Location>
+
+# but normal mime-type associations here:
+<Location /images/mixed>
+ ForceType None
+</Location>
+ </pre>
+
<p>This directive primarily overrides the content types generated for
static files served out of the filesystem. For resources other than
<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,
+ <p>When the server has been compiled with gprof profiling support,
<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
directives if and only if the expression evaluates to true.
For example:</p>
- <div class="example"><p><code>
- <If "-z req('Host')">
- </code></p></div>
+ <pre class="prettyprint lang-config"><If "-z req('Host')"></pre>
+
<p>would match HTTP/1.0 requests without a <var>Host:</var> header.
Expressions may contain various shell-like operators for string
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>
- <If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">
- </code></p></div>
+ <pre class="prettyprint lang-config"><If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"></pre>
+
<p>shell-like pattern matches and many other operations. These operations
can be done on request headers (<code>req</code>), environment variables
nest-able, which can be used to implement simple
multiple-parameter tests. Example:</p>
- <div class="example"><p><code>
- httpd -DReverseProxy -DUseCache -DMemCache ...<br />
- <br />
- # httpd.conf<br />
- <IfDefine ReverseProxy><br />
- <span class="indent">
- LoadModule proxy_module modules/mod_proxy.so<br />
- LoadModule proxy_http_module modules/mod_proxy_http.so<br />
- <IfDefine UseCache><br />
- <span class="indent">
- LoadModule cache_module modules/mod_cache.so<br />
- <IfDefine MemCache><br />
- <span class="indent">
- LoadModule mem_cache_module modules/mod_mem_cache.so<br />
- </span>
- </IfDefine><br />
- <IfDefine !MemCache><br />
- <span class="indent">
- LoadModule cache_disk_module modules/mod_cache_disk.so<br />
- </span>
- </IfDefine>
- </span>
- </IfDefine>
- </span>
- </IfDefine>
- </code></p></div>
+ <div class="example"><p><code>httpd -DReverseProxy -DUseCache -DMemCache ...</code></p></div>
+ <pre class="prettyprint lang-config">
+<IfDefine ReverseProxy>
+ LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+ <IfDefine UseCache>
+ LoadModule cache_module modules/mod_cache.so
+ <IfDefine MemCache>
+ LoadModule mem_cache_module modules/mod_mem_cache.so
+ </IfDefine>
+ <IfDefine !MemCache>
+ LoadModule cache_disk_module modules/mod_cache_disk.so
+ </IfDefine>
+ </IfDefine>
+</IfDefine>
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<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>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#Syntax">Syntax:</a></th><td><code>Include <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>
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 behavior 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 <code class="directive"><a href="#include">Include</a></code> directive will
+ <strong>fail with an error</strong> if a wildcard expression does not
+ match any file. The <code class="directive"><a href="#includeoptional">IncludeOptional</a></code>
+ directive can be used if non-matching wildcards should be ignored.</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>
- <div class="example"><p><code>
- Include /usr/local/apache2/conf/ssl.conf<br />
- Include /usr/local/apache2/conf/vhosts/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Include /usr/local/apache2/conf/ssl.conf
+Include /usr/local/apache2/conf/vhosts/*.conf
+ </pre>
+
<p>Or, providing paths relative to your <code class="directive"><a href="#serverroot">ServerRoot</a></code> directory:</p>
- <div class="example"><p><code>
- Include conf/ssl.conf<br />
- Include conf/vhosts/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Include conf/ssl.conf
+Include conf/vhosts/*.conf
+ </pre>
+
<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>
+ path. This example will fail if there is no subdirectory in conf/vhosts
+ that contains at least one *.conf file:</p>
- <div class="example"><p><code>
- Include conf/vhosts/*/vhost.conf<br />
- Include conf/vhosts/*/*.conf
- </code></p></div>
+ <pre class="prettyprint lang-config">Include conf/vhosts/*/*.conf</pre>
- <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>Alternatively, the following command will just be ignored in case of
+ missing files or directories:</p>
- <p>In this example, the server load successfully if either conf/vhosts/*
- matches no directories, or if *.conf matches no files:</p>
+ <pre class="prettyprint lang-config">IncludeOptional conf/vhosts/*/*.conf</pre>
- <div class="example"><p><code>
- Include optional conf/vhosts/*/*.conf
- </code></p></div>
<h3>See also</h3>
<ul>
+<li><code class="directive"><a href="#includeoptional">IncludeOptional</a></code></li>
+<li><code class="program"><a href="../programs/apachectl.html">apachectl</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="IncludeOptional" id="IncludeOptional">IncludeOptional</a> <a name="includeoptional" id="includeoptional">Directive</a></h2>
+<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>IncludeOptional <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>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. It works identically to the
+ <code class="directive"><a href="#include">Include</a></code> directive, with the
+ exception that if wildcards do not match any file or directory, the
+ <code class="directive"><a href="#includeoptional">IncludeOptional</a></code> directive will be
+ silently ignored instead of causing an error.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#include">Include</a></code></li>
<li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li>
</ul>
</div>
only to the methods <code>POST</code>, <code>PUT</code>, and
<code>DELETE</code>, leaving all other methods unprotected:</p>
- <div class="example"><p><code>
- <Limit POST PUT DELETE><br />
- <span class="indent">
- Require valid-user<br />
- </span>
- </Limit>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Limit POST PUT DELETE>
+ Require valid-user
+</Limit>
+ </pre>
+
<p>The method names listed can be one or more of: <code>GET</code>,
<code>POST</code>, <code>PUT</code>, <code>DELETE</code>,
<code>Require group editors</code> directive will be ignored
in all cases:</p>
- <div class="example"><p><code>
- <LimitExcept GET>
- <span class="indent">
- Require valid-user
- </span>
- </LimitExcept><br />
- <Limit POST>
- <span class="indent">
- Require group editors
- </span>
- </Limit>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LimitExcept GET>
+ Require valid-user
+</LimitExcept>
+<Limit POST>
+ Require group editors
+</Limit>
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<p>For example:</p>
- <div class="example"><p><code>
- <LimitExcept POST GET><br />
- <span class="indent">
- Require valid-user<br />
- </span>
- </LimitExcept>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LimitExcept POST GET>
+ Require valid-user
+</LimitExcept>
+ </pre>
+
</div>
determines, how deep subrequests may be nested. If you specify only one
<var>number</var>, it will be assigned to both limits.</p>
- <div class="example"><h3>Example</h3><p><code>
- LimitInternalRecursion 5
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitInternalRecursion 5</pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
location, and wish to limit the size of the uploaded file to 100K,
you might use the following directive:</p>
- <div class="example"><p><code>
- LimitRequestBody 102400
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestBody 102400</pre>
+
<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>
<p>For example:</p>
- <div class="example"><p><code>
- LimitRequestFields 50
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestFields 50</pre>
+
<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>.
+ local IP and port combination.</p>
</div>
<p>For example:</p>
- <div class="example"><p><code>
- LimitRequestFieldSize 4094
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestFieldSize 4094</pre>
+
<div class="note">Under normal conditions, the value should not be changed from
- the default. Also, you can't set this higher than 8190 without
- modifying the source code and rebuilding.</div>
+ the default.</div>
<div class="warning"><h3>Warning</h3>
<p> When name-based virtual hosting is used, the value for this
<p>For example:</p>
- <div class="example"><p><code>
- LimitRequestLine 4094
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitRequestLine 4094</pre>
+
<div class="note">Under normal conditions, the value should not be changed from
the default. Also, you can't set this higher than 8190 without
<p>Example:</p>
- <div class="example"><p><code>
- LimitXMLRequestBody 0
- </code></p></div>
+ <pre class="prettyprint lang-config">LimitXMLRequestBody 0</pre>
+
</div>
/private1, /private1/ and /private1/file.txt will have the enclosed
directives applied, but /private1other would not.
</p>
- <div class="example"><p><code>
- <Location /private1>
- ...
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location /private1>
+ # ...
+</Location>
+ </pre>
+
<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>
- <Location /private2<em>/</em>>
- ...
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location /private2<em>/</em>>
+ # ...
+</Location>
+ </pre>
+
<div class="note"><h3>When to use <code class="directive"><Location></code></h3>
can also be used, with the addition of the <code>~</code>
character. For example:</p>
- <div class="example"><p><code>
- <Location ~ "/(extra|special)/data">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location ~ "/(extra|special)/data">
+ #...
+</Location>
+</pre>
+
<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"><LocationMatch></a></code> behaves
directive. For example, to enable status requests, but allow them
only from browsers at <code>example.com</code>, you might use:</p>
- <div class="example"><p><code>
- <Location /status><br />
- <span class="indent">
- SetHandler server-status<br />
- Require host example.com<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location /status>
+ SetHandler server-status
+ Require host example.com
+</Location>
+ </pre>
+
<div class="note"><h3>Note about / (slash)</h3>
<p>The slash character has special meaning depending on where in a
it takes a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>
as an argument instead of a simple string. For example:</p>
- <div class="example"><p><code>
- <LocationMatch "/(extra|special)/data">
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<LocationMatch "/(extra|special)/data">
+ # ...
+</LocationMatch>
+</pre>
+
<p>would match URLs that contained the substring <code>/extra/data</code>
or <code>/special/data</code>.</p>
<p>For example:</p>
- <div class="example"><p><code>
- LogLevel notice
- </code></p></div>
+ <pre class="prettyprint lang-config">LogLevel notice</pre>
+
<div class="note"><h3>Note</h3>
<p>When logging to a regular file messages of the level
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>
+ <pre class="prettyprint lang-config">
+LogLevel info ssl:warn
+LogLevel info mod_ssl.c:warn
+LogLevel info ssl_module:warn
+ </pre>
+
<p>It is also possible to change the level per directory:</p>
- <div class="example"><p><code>
- LogLevel info<br />
- <Directory /usr/local/apache/htdocs/app><br />
- LogLevel debug<br />
- </Files>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+LogLevel info
+<Directory "/usr/local/apache/htdocs/app">
+ LogLevel debug
+</Directory>
+ </pre>
+
<div class="note">
Per directory loglevel configuration only affects messages that are
<p>For example:</p>
- <div class="example"><p><code>
- MaxKeepAliveRequests 500
- </code></p></div>
+ <pre class="prettyprint lang-config">MaxKeepAliveRequests 500</pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<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
+ The default directory is httpd's run-time file directory,
+ <code class="directive"><a href="#defaultruntimedir">DefaultRuntimeDir</a></code>. If a relative
+ path is provided, it is relative to
+ <code class="directive"><a href="#defaultruntimedir">DefaultRuntimeDir</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
<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>
- Mutex default sysvsem<br />
- Mutex mpm-accept fcntl:/var/httpd/locks
- </code></p></div>
+ <pre class="prettyprint lang-config">
+Mutex sysvsem default
+Mutex fcntl:/var/httpd/locks mpm-accept
+ </pre>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<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"><Directory></a></code> sections.</p>
- <p>Note also, that this option <strong>gets ignored</strong> if set
- inside a <code class="directive"><a href="#location"><Location></a></code>
- section.</p>
+
+ <p>The <code>FollowSymLinks</code> and
+ <code>SymLinksIfOwnerMatch</code> <code class="directive"><a href="#options">Options</a></code> work only in <code class="directive"><a href="#directory"><Directory></a></code> sections or
+ <code>.htaccess</code> files.</p>
+
<p>Omitting this option should not be considered a security restriction,
since symlink testing is subject to race conditions that make it
circumventable.</p>
target file or directory is owned by the same user id as the
link.
- <div class="note"><h3>Note</h3> <p>This option gets ignored if
- set inside a <code class="directive"><a href="#location"><Location></a></code> section.</p>
+ <div class="note"><h3>Note</h3>
+ <p>The <code>FollowSymLinks</code> and
+ <code>SymLinksIfOwnerMatch</code> <code class="directive"><a href="#options">Options</a></code> work only in <code class="directive"><a href="#directory"><Directory></a></code> sections or
+ <code>.htaccess</code> files.</p>
+
<p>This option should not be considered a security restriction,
since symlink testing is subject to race conditions that make it
- circumventable.</p></div>
- </dd>
+ circumventable.</p>
+ </div> </dd>
</dl>
<p>Normally, if multiple <code class="directive">Options</code> could
<p>For example, without any <code>+</code> and <code>-</code> symbols:</p>
- <div class="example"><p><code>
- <Directory /web/docs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory><br />
- <br />
- <Directory /web/docs/spec><br />
- <span class="indent">
- Options Includes<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/web/docs">
+ Options Indexes FollowSymLinks
+</Directory>
+
+<Directory "/web/docs/spec">
+ Options Includes
+</Directory>
+ </pre>
+
<p>then only <code>Includes</code> will be set for the
<code>/web/docs/spec</code> directory. However if the second
<code class="directive">Options</code> directive uses the <code>+</code> and
<code>-</code> symbols:</p>
- <div class="example"><p><code>
- <Directory /web/docs><br />
- <span class="indent">
- Options Indexes FollowSymLinks<br />
- </span>
- </Directory><br />
- <br />
- <Directory /web/docs/spec><br />
- <span class="indent">
- Options +Includes -Indexes<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/web/docs">
+ Options Indexes FollowSymLinks
+</Directory>
+
+<Directory "/web/docs/spec">
+ Options +Includes -Indexes
+</Directory>
+ </pre>
+
<p>then the options <code>FollowSymLinks</code> and
<code>Includes</code> are set for the <code>/web/docs/spec</code>
<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>
+ <pre class="prettyprint lang-config">Protocol https</pre>
+
<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="#acceptfilter">AcceptFilter</a></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="RegisterHttpMethod" id="RegisterHttpMethod">RegisterHttpMethod</a> <a name="registerhttpmethod" id="registerhttpmethod">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Register non-standard HTTP methods</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RegisterHttpMethod <var>method</var> [<var>method</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>HTTP Methods that are not conforming to the relvant RFCs are normally
+rejected by request processing in Apache HTTPD. To avoid this, modules
+can register non-standard HTTP methods they support.
+The <code class="directive">RegisterHttpMethod</code> allows to register such
+methods manually. This can be useful for if such methods are forwared
+for external processing, e.g. to a CGI script.</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="RLimitCPU" id="RLimitCPU">RLimitCPU</a> <a name="rlimitcpu" id="rlimitcpu">Directive</a></h2>
by the shebang line (first line, starting with <code>#!</code>) in the
script. On Win32 systems this line usually looks like:</p>
- <div class="example"><p><code>
- #!C:/Perl/bin/perl.exe
- </code></p></div>
+ <pre class="prettyprint lang-perl">#!C:/Perl/bin/perl.exe</pre>
+
<p>or, if <code>perl</code> is in the <code>PATH</code>, simply:</p>
- <div class="example"><p><code>
- #!perl
- </code></p></div>
+ <pre class="prettyprint lang-perl">#!perl</pre>
+
<p>Setting <code>ScriptInterpreterSource Registry</code> will
cause the Windows Registry tree <code>HKEY_CLASSES_ROOT</code> to be
<p>It may be worth setting up a dedicated address for this, e.g.</p>
- <div class="example"><p><code>
- ServerAdmin www-admin@foo.example.com
- </code></p></div>
+ <pre class="prettyprint lang-config">ServerAdmin www-admin@foo.example.com</pre>
+
<p>as users do not always mention that they are talking about the
server!</p>
alternate names for a host, for use with <a href="../vhosts/name-based.html">name-based virtual hosts</a>. The
<code class="directive">ServerAlias</code> may include wildcards, if appropriate.</p>
- <div class="example"><p><code>
- <VirtualHost *:80><br />
- ServerName server.example.com<br />
- ServerAlias server server2.example.com server2<br />
- ServerAlias *.example.com<br />
- UseCanonicalName Off<br />
- # ...<br />
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost *:80>
+ ServerName server.example.com
+ ServerAlias server server2.example.com server2
+ ServerAlias *.example.com
+ UseCanonicalName Off
+ # ...
+</VirtualHost>
+ </pre>
+
+
+ <p>Name-based virtual hosts for the best-matching set of <code class="directive"><a href="#virtualhost"><virtualhost></a></code>s are processed
+ in the order they appear in the configuration. The first matching <code class="directive"><a href="#servername">ServerName</a></code> or <code class="directive"><a href="#serveralias">ServerAlias</a></code> is used, with no different precedence for wildcards
+ (nor for ServerName vs. ServerAlias). </p>
+
+ <p>The complete list of names in the <code class="directive">VirtualHost</code>
+ directive are treated just like a (non wildcard)
+ <code class="directive">ServerAlias</code>.</p>
+
<h3>See also</h3>
<ul>
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
- </code></p></div>
+ <pre class="prettyprint lang-config">ServerName www.example.com</pre>
+
<p>The <code class="directive">ServerName</code> directive
may appear anywhere within the definition of a server. However,
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>
+ <pre class="prettyprint lang-config">ServerRoot "/home/httpd"</pre>
+
<p>The default location of <code class="directive">ServerRoot</code> may be
modified by using the <code>--prefix</code> argument to
<dl>
<dt><code>ServerTokens Full</code> (or not specified)</dt>
- <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.1
+ <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.2
(Unix) PHP/4.2.2 MyMod/1.2</code></dd>
<dt><code>ServerTokens Prod[uctOnly]</code></dt>
<dt><code>ServerTokens Min[imal]</code></dt>
<dd>Server sends (<em>e.g.</em>): <code>Server:
- Apache/2.4.1</code></dd>
+ Apache/2.4.2</code></dd>
<dt><code>ServerTokens OS</code></dt>
- <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.1
+ <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.4.2
(Unix)</code></dd>
</dl>
of extension, you might put the following into an
<code>.htaccess</code> file in that directory:</p>
- <div class="example"><p><code>
- SetHandler imap-file
- </code></p></div>
+ <pre class="prettyprint lang-config">SetHandler imap-file</pre>
+
<p>Another example: if you wanted to have the server display a
status report whenever a URL of
<code>http://servername/status</code> was called, you might put
the following into <code>httpd.conf</code>:</p>
- <div class="example"><p><code>
- <Location /status><br />
- <span class="indent">
- SetHandler server-status<br />
- </span>
- </Location>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Location "/status">
+ SetHandler server-status
+</Location>
+ </pre>
+
+
+ <p>You could also use this directive to configure a particular
+ handler for files with a particular file extension. For example:</p>
+
+ <pre class="prettyprint lang-config">
+<FilesMatch \.php$>
+ SetHandler application/x-httpd-php
+</FilesMatch>
+ </pre>
+
<p>You can override an earlier defined <code class="directive">SetHandler</code>
directive by using the value <code>None</code>.</p>
in the <code>/www/data/</code> directory for server-side
includes.</p>
- <div class="example"><p><code>
- <Directory /www/data/><br />
- <span class="indent">
- SetOutputFilter INCLUDES<br />
- </span>
- </Directory>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<Directory "/www/data/">
+ SetOutputFilter INCLUDES
+</Directory>
+ </pre>
+
<p>If more than one filter is specified, they must be separated
by semicolons in the order in which they should process the
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 class="note"><h3>Note</h3>
+ <p>Despite claims to the contrary, <code>TRACE</code> is not
+ a security vulnerability and there is no viable reason for
+ it to be disabled. Doing so necessarily makes your server
+ non-compliant.</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="UnDefine" id="UnDefine">UnDefine</a> <a name="undefine" id="undefine">Directive</a></h2>
<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.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
+ for <code>www.example.com</code> -- see <a href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">
+ the FAQ on this subject for more information</a>). But if
<code class="directive">UseCanonicalName</code> is set <code>Off</code>, then
Apache httpd will redirect to <code>http://www/splat/</code>.</p>
</ul>
- <div class="example"><h3>Example</h3><p><code>
- <VirtualHost 10.1.2.3:80><br />
- <span class="indent">
- ServerAdmin webmaster@host.example.com<br />
- DocumentRoot /www/docs/host.example.com<br />
- ServerName host.example.com<br />
- ErrorLog logs/host.example.com-error_log<br />
- TransferLog logs/host.example.com-access_log<br />
- </span>
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost 10.1.2.3:80>
+ ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+</VirtualHost>
+ </pre>
+
<p>IPv6 addresses must be specified in square brackets because
the optional port number could not be determined otherwise. An
IPv6 example is shown below:</p>
- <div class="example"><p><code>
- <VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80><br />
- <span class="indent">
- ServerAdmin webmaster@host.example.com<br />
- DocumentRoot /www/docs/host.example.com<br />
- ServerName host.example.com<br />
- ErrorLog logs/host.example.com-error_log<br />
- TransferLog logs/host.example.com-access_log<br />
- </span>
- </VirtualHost>
- </code></p></div>
+ <pre class="prettyprint lang-config">
+<VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80>
+ ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+</VirtualHost>
+ </pre>
+
<p>Each Virtual Host must correspond to a different IP address,
different port number or a different host name for the server,
<a href="../fr/mod/core.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
-</div><div id="footer">
-<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>
+</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/core.html';
+(function(w, d) {
+ if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+ d.write('<div id="comments_thread"><\/div>');
+ var s = d.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+ (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+ }
+ else {
+ d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+ }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2012 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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+//--><!]]></script>
</body></html>
\ No newline at end of file