Quellcode-Bibliothek core.html.en
Sprache: unbekannt
|
|
Untersuchungsergebnis.en Download desUnknown {[0] [0] [0]}zum Wurzelverzeichnis wechseln
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>core - Apache HTTP Server Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" titl e="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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.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="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.4</p>
<img alt="" src="../images/feather.png" /></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.4</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Core Features</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/core.html" title="English"> en </a> |
<a href="../es/mod/core.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<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>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Core Apache HTTP Server features that are always
available</td></tr>
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Core</td></tr></table>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#acceptfilter">AcceptFilter</a></li>
<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="#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="#cgipassauth">CGIPassAuth</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#cgivar">CGIVar</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="#directorymatch"><DirectoryMatch></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"><Else></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#elseif"><ElseIf></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"><Files></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#filesmatch"><FilesMatch></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flushmaxpipelined">FlushMaxPipelined</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flushmaxthreshold">FlushMaxThreshold</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="#httpprotocoloptions">HttpProtocolOptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#if"><If></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifdefine"><IfDefine></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifdirective"><IfDirective></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#iffile"><IfFile></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifmodule"><IfModule></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ifsection"><IfSection></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="#limitexcept"><LimitExcept></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitinternalrecursion">LimitInternalRecursion</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestbody">LimitRequestBody</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfields">LimitRequestFields</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfieldsize">LimitRequestFieldSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitrequestline">LimitRequestLine</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitxmlrequestbody">LimitXMLRequestBody</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#location"><Location></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#locationmatch"><LocationMatch></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="#mergeslashes">MergeSlashes</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#mergetrailers">MergeTrailers</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="#protocols">Protocols</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#protocolshonororder">ProtocolsHonorOrder</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#qualifyredirecturl">QualifyRedirectURL</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#readbuffersize">ReadBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#regexdefaultoptions">RegexDefaultOptions</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="#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>
<li><img alt="" src="../images/down.gif" /> <a href="#serverpath">ServerPath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#serverroot">ServerRoot</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#serversignature">ServerSignature</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#servertokens">ServerTokens</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sethandler">SetHandler</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#stricthostcheck">StrictHostCheck</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="#unclist">UNCList</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"><VirtualHost></a></li>
</ul>
<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=core">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=core">Report a bug</a></li></ul><h3>See also</h3>
<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>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures optimizations for a Protocol's Listener Sockets</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AcceptFilter <var>protocol</var> <var>accept_filter</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>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&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>
<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 that 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>
<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
sends it to the server. See the
<a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">
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&sektion=9">
accf_data(9)</a> filter is used.</p>
<p>The default values on Linux are:</p>
<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
<code>TCP_DEFER_ACCEPT</code> on that listener. For more details
see the Linux
<a href="http://man7.org/linux/man-pages/man7/tcp.7.html">
tcp(7)</a> man page.</p>
<p>The default values on Windows are:</p>
<pre class="prettyprint lang-config">AcceptFilter http connect
AcceptFilter https connect</pre>
<p>Window's mpm_winnt interprets the AcceptFilter to toggle the AcceptEx()
API, and does not support http protocol buffering. <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>
<div class="warning">
<h3>The <code>data</code> AcceptFilter (Windows)</h3>
<p>For versions 2.4.23 and prior, the Windows <code>data</code> accept
filter waited until data had been transmitted and the initial data
buffer and network endpoint addresses had been retrieved from the
single AcceptEx() invocation. This implementation was subject to a
denial of service attack and has been disabled.</p>
<p>Current releases of httpd default to the <code>connect</code> filter
on Windows, and will fall back to <code>connect</code> if
<code>data</code> is specified. Users of prior releases are encouraged
to add an explicit setting of <code>connect</code> for their
AcceptFilter, as shown above.</p>
</div>
<h3>See also</h3>
<ul>
<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>
<div class="directive-section"><h2><a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a> <a name="acceptpathinfo" id="acceptpathinfo">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Resources accept trailing pathname information</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AcceptPathInfo On|Off|Default</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AcceptPathInfo Default</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>
</table>
<p>This directive controls whether requests that contain trailing
pathname information that follows an actual filename (or
non-existent file in an existing directory) will be accepted or
rejected. The trailing pathname information can be made
available to scripts in the <code>PATH_INFO</code> environment
variable.</p>
<p>For example, assume the location <code>/test/</code> points to
a directory that contains only the single file
<code>here.html</code>. Then requests for
<code>/test/here.html/more</code> and
<code>/test/nothere.html/more</code> both collect
<code>/more</code> as <code>PATH_INFO</code>.</p>
<p>The three possible arguments for the
<code class="directive">AcceptPathInfo</code> directive are:</p>
<dl>
<dt><code>Off</code></dt><dd>A request will only be accepted if it
maps to a literal path that exists. Therefore a request with
trailing pathname information after the true filename such as
<code>/test/here.html/more</code> in the above example will return
a 404 NOT FOUND error.</dd>
<dt><code>On</code></dt><dd>A request will be accepted if a
leading path component maps to a file that exists. The above
example <code>/test/here.html/more</code> will be accepted if
<code>/test/here.html</code> maps to a valid file.</dd>
<dt><code>Default</code></dt><dd>The treatment of requests with
trailing pathname information is determined by the <a href="../handler.html">handler</a> responsible for the request.
The core handler for normal files defaults to rejecting
<code>PATH_INFO</code> requests. Handlers that serve scripts, such as <a href="mod_cgi.html">cgi-script</a> and <a href="mod_isapi.html">isapi-handler</a>, generally accept
<code>PATH_INFO</code> by default.</dd>
</dl>
<p>The primary purpose of the <code>AcceptPathInfo</code>
directive is to allow you to override the handler's choice of
accepting or rejecting <code>PATH_INFO</code>. This override is required,
for example, when you use a <a href="../filter.html">filter</a>, such
as <a href="mod_include.html">INCLUDES</a>, to generate content
based on <code>PATH_INFO</code>. The core handler would usually reject
the request, so you can use the following configuration to enable
such a script:</p>
<pre class="prettyprint lang-config"><Files "mypaths.shtml">
Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo On
</Files></pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AccessFileName" id="AccessFileName">AccessFileName</a> <a name="accessfilename" id="accessfilename">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Name of the distributed configuration file</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AccessFileName <var>filename</var> [<var>filename</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AccessFileName .htaccess</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>While processing a request, the server looks for
the first existing configuration file from this list of names in
every directory of the path to the document, if distributed
configuration files are <a href="#allowoverride">enabled for that
directory</a>. For example:</p>
<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>/.acl</code>, <code>/usr/.acl</code>,
<code>/usr/local/.acl</code> and <code>/usr/local/web/.acl</code>
for directives unless they have been disabled with:</p>
<pre class="prettyprint lang-config"><Directory "/">
AllowOverride None
</Directory></pre>
<h3>See also</h3>
<ul>
<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>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddDefaultCharset" id="AddDefaultCharset">AddDefaultCharset</a> <a name="adddefaultcharset" id="adddefaultcharset">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default charset parameter to be added when a response
content-type is <code>text/plain</code> or <code>text/html</code></td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddDefaultCharset On|Off|<var>charset</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AddDefaultCharset 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>
</table>
<p>This directive specifies a default value for the media type
charset parameter (the name of a character encoding) to be added
to a response if and only if the response's content-type is either
<code>text/plain</code> or <code>text/html</code>. This should override
any charset specified in the body of the response via a <code>META</code>
element, though the exact behavior is often dependent on the user's client
configuration. A setting of <code>AddDefaultCharset Off</code>
disables this functionality. <code>AddDefaultCharset On</code> enables
a default charset of <code>iso-8859-1</code>. Any other value is assumed
to be the <var>charset</var> to be used, which should be one of the
<a href="http://www.iana.org/assignments/character-sets">IANA registered
charset values</a> for use in Internet media types (MIME types).
For example:</p>
<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
character encoding and it is too inconvenient to label their charset
individually. One such example is to add the charset parameter
to resources containing generated content, such as legacy CGI
scripts, that might be vulnerable to cross-site scripting attacks
due to user-provided data being included in the output. Note, however,
that a better solution is to just fix (or delete) those scripts, since
setting a default charset does not protect users that have enabled
the "auto-detect character encoding" feature on their browser.</p>
<h3>See also</h3>
<ul>
<li><code class="directive"><a href="../mod/mod_mime.html#addcharset">AddCharset</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="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|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>
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 accordant systems)
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>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>
<ul>
<li><code class="directive"><a href="#acceptpathinfo">AcceptPathInfo</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="AllowOverride" id="AllowOverride">AllowOverride</a> <a name="allowoverride" id="allowoverride">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Types of directives that are allowed in
<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 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>
</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 <Directory> sections</h3>
<code class="directive">AllowOverride</code> is valid only in
<code class="directive"><a href="#directory"><Directory></a></code>
sections specified without regular expressions, not in <code class="directive"><a href="#location"><Location></a></code>, <code class="directive"><a href="#directorymatch"><DirectoryMatch></a></code> or
<code class="directive"><a href="#files"><Files></a></code> sections.
</div>
<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
<code>.htaccess</code> files.</p>
<p>The <var>directive-type</var> can be one of the following
groupings of directives. (See the <a href="overrides.html">override class
index</a> for an up-to-date listing of which directives are enabled by each
<var>directive-type</var>.)</p>
<dl>
<dt><a href="overrides.html#override-authconfig">AuthConfig</a></dt>
<dd>
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="../mod/mod_authn_core.html#authtype">AuthType</a></code>, <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>, <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>, <em>etc.</em>).</dd>
<dt><a href="overrides.html#override-fileinfo">FileInfo</a></dt>
<dd>
Allow use of the directives controlling document types
(<code class="directive"><a href="#errordocument">ErrorDocument</a></code>,
<code class="directive"><a href="#forcetype">ForceType</a></code>,
<code class="directive"><a href="../mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>,
<code class="directive"><a href="#sethandler">SetHandler</a></code>,
<code class="directive"><a href="#setinputfilter">SetInputFilter</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>),
<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>
<dt><a href="overrides.html#override-indexes">Indexes</a></dt>
<dd>
Allow use of the directives controlling directory indexing
(<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>, <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><a href="overrides.html#override-limit">Limit</a></dt>
<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 nonfatal. 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 nonfatal.</li>
<li><strong>Nonfatal=Unknown</strong> treats unknown directives
as nonfatal. This covers typos and directives implemented
by a module that's not present.</li>
<li><strong>Nonfatal=All</strong> treats both the above as nonfatal.</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><a href="overrides.html#override-options">Options</a>[=<var>Option</var>,...]</dt>
<dd>
Allow use of the directives controlling specific directory
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-separated list, without
spaces, 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>
<pre class="prettyprint lang-config">AllowOverride Options=Indexes,MultiViews</pre>
</dd>
</dl>
<p>Example:</p>
<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
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>
in your <code><Directory "/"></code> block. Instead, find (or
create) the <code><Directory></code> block that refers to the
directory where you're actually planning to place a
<code>.htaccess</code> file.</p>
</div>
<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>
<li><a href="overrides.html">Override Class Index for .htaccess</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 <Directory> sections</h3>
<code class="directive">AllowOverrideList</code> is valid only in
<code class="directive"><a href="#directory"><Directory></a></code>
sections specified without regular expressions, not in <code class="directive"><a href="#location"><Location></a></code>, <code class="directive"><a href="#directorymatch"><DirectoryMatch></a></code> or
<code class="directive"><a href="#files"><Files></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>
<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
cause an internal server error.</p>
<p>Example:</p>
<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 directives 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>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="CGIMapExtension" id="CGIMapExtension">CGIMapExtension</a> <a name="cgimapextension" id="cgimapextension">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Technique for locating the interpreter for CGI
scripts</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CGIMapExtension <var>cgi-path</var> <var>.extension</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>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>NetWare only</td></tr>
</table>
<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
be passed to the FOO interpreter.</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="CGIPassAuth" id="CGIPassAuth">CGIPassAuth</a> <a name="cgipassauth" id="cgipassauth">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables passing HTTP authorization headers to scripts as CGI
variables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CGIPassAuth On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CGIPassAuth Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</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.4.13 and later</td></tr>
</table>
<p><code class="directive">CGIPassAuth</code> allows scripts access to HTTP
authorization headers such as <code>Authorization</code>, which is
required for scripts that implement HTTP Basic authentication.
Normally these HTTP headers are hidden from scripts. This is to disallow
scripts from seeing user ids and passwords used to access the server when
HTTP Basic authentication is enabled in the web server. This directive
should be used when scripts are allowed to implement HTTP Basic
authentication.</p>
<p>This directive can be used instead of the compile-time setting
<code>SECURITY_HOLE_PASS_AUTHORIZATION</code> which has been available
in previous versions of Apache HTTP Server.</p>
<p>The setting is respected by any modules which use
<code>ap_add_common_vars()</code>, such as <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>,
<code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>, <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>,
<code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>, and so on. Notably, it affects
modules which don't handle the request in the usual sense but
still use this API; examples of this are <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
and <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>. Third-party modules that don't
use <code>ap_add_common_vars()</code> may choose to respect the setting
as well.</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="CGIVar" id="CGIVar">CGIVar</a> <a name="cgivar" id="cgivar">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls how some CGI variables are set</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CGIVar <var>variable</var> <var>rule</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>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 HTTP Server 2.4.21 and later</td></tr>
</table>
<p>This directive controls how some CGI variables are set.</p>
<p><strong>REQUEST_URI</strong> rules:</p>
<dl>
<dt><code>original-uri</code> (default)</dt>
<dd>The value is taken from the original request line, and will not
reflect internal redirects or subrequests which change the requested
resource.</dd>
<dt><code>current-uri</code></dt>
<dd>The value reflects the resource currently being processed,
which may be different than the original request from the client
due to internal redirects or subrequests.</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="ContentDigest" id="ContentDigest">ContentDigest</a> <a name="contentdigest" id="contentdigest">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables the generation of <code>Content-MD5</code> HTTP Response
headers</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ContentDigest On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ContentDigest 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>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>
</table>
<p>This directive enables the generation of
<code>Content-MD5</code> headers as defined in RFC1864
respectively RFC2616.</p>
<p>MD5 is an algorithm for computing a "message digest"
(sometimes called "fingerprint") of arbitrary-length data, with
a high degree of confidence that any alterations in the data
will be reflected in alterations in the message digest.</p>
<p>The <code>Content-MD5</code> header provides an end-to-end
message integrity check (MIC) of the entity-body. A proxy or
client may check this header for detecting accidental
modification of the entity-body in transit. Example header:</p>
<div class="example"><p><code>
Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
</code></p></div>
<p>Note that this can cause performance problems on your server
since the message digest is computed on every request (the
values are not cached).</p>
<p><code>Content-MD5</code> is only sent for documents served
by the <code class="module"><a href="../mod/core.html">core</a></code>, and not by any module. For example,
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>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.4.2 and later</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>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>This directive has no effect other than to emit warnings
if the value is not <code>none</code>. In prior versions, DefaultType
would specify a default media type to assign to response content for
which no other media type configuration could be found.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DefaultType <var>media-type|none</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DefaultType none</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>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
<code>none</code>, meaning no default media type. For example:</p>
<pre class="prettyprint lang-config">DefaultType None</pre>
<p><code>DefaultType None</code> is only available in
httpd-2.2.7 and later.</p>
<p>Use the mime.types configuration file and the
<code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> to configure media
type assignments via file extensions, or the
<code class="directive"><a href="#forcetype">ForceType</a></code> directive to configure
the media type for specific resources. Otherwise, the server will
send the response without a Content-Type header field and the
recipient may attempt to guess the media type.</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="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 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>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"><IfDefine></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>
<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>
<div class="note"><h3>Virtual Host scope and pitfalls</h3>
<p>While this directive is supported in virtual host context,
the changes it makes are visible to any later configuration
directives, beyond any enclosing virtual host.</p>
</div>
<h3>See also</h3>
<ul>
<li><code class="directive"><a href="#undefine">UnDefine</a></code></li>
<li><code class="directive"><a href="#ifdefine">IfDefine</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="Directory" id="Directory"><Directory></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, sub-directories, and their contents.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><Directory <var>directory-path</var>>
... </Directory></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><code class="directive"><Directory></code> and
<code></Directory></code> are used to enclose a group of
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
any single character, and <code>*</code> matches any sequences of
characters. You may also use <code>[]</code> character ranges. None
of the wildcards match a `/' character, so <code><Directory
"/*/public_html"></code> will not match
<code>/home/user/public_html</code>, but <code><Directory
"/home/*/public_html"></code> will match. Example:</p>
<pre class="prettyprint lang-config"><Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
</Directory></pre>
<p>Directory paths <em>may</em> be quoted, if you like, however, it
<em>must</em> be quoted if the path contains spaces. This is because a
space would otherwise indicate the end of an argument.</p>
<div class="note">
<p>Be careful with the <var>directory-path</var> arguments:
They have to literally match the filesystem path which Apache httpd uses
to access the files. Directives applied to a particular
<code><Directory></code> will not apply to files accessed from
that same directory via a different path, such as via different symbolic
links.</p>
</div>
<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>
<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>
<p>If multiple (non-regular expression) <code class="directive"><Directory></code> sections
match the directory (or one of its parents) containing a document,
then the directives are applied in the order of shortest match
first, interspersed with the directives from the <a href="#accessfilename">.htaccess</a> files. For example,
with</p>
<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>
<ul>
<li>Apply directive <code>AllowOverride None</code>
(disabling <code>.htaccess</code> files).</li>
<li>Apply directive <code>AllowOverride FileInfo</code> (for
directory <code>/home</code>).</li>
<li>Apply any <code>FileInfo</code> directives in
<code>/home/.htaccess</code>, <code>/home/web/.htaccess</code> and
<code>/home/web/dir/.htaccess</code> in that order.</li>
</ul>
<p>Regular expressions are not considered until after all of the
normal sections have been applied. Then all of the regular
expressions are tested in the order they appeared in the
configuration file. For example, with</p>
<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
<code>.htaccess</code> files have been applied. Then the regular
expression will match on <code>/home/abc/public_html/abc</code> and
the corresponding <code class="directive"><Directory></code> will
be applied.</p>
<p><strong>Note that the default access for
<code><Directory "/"></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>
<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
details.</strong></p>
<p>The directory sections occur in the <code>httpd.conf</code> file.
<code class="directive"><Directory></code> directives
cannot nest, and cannot appear in a <code class="directive"><a href="#limit"><Limit></a></code> or <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section.</p>
<h3>See also</h3>
<ul>
<li><a href="../sections.html">How <Directory>,
<Location> and <Files> sections work</a> for an
explanation of how these different sections are combined when a
request is received</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="DirectoryMatch" id="DirectoryMatch"><DirectoryMatch></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
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><DirectoryMatch <var>regex</var>>
... </DirectoryMatch></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><code class="directive"><DirectoryMatch></code> and
<code></DirectoryMatch></code> are used to enclose a group
of directives which will apply only to the named directory (and the files within),
the same as <code class="directive"><a href="#directory"><Directory></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>
<pre class="prettyprint lang-config"><DirectoryMatch "^/www/(.+/)?[0-9]{3}/">
# ...
</DirectoryMatch></pre>
<p>matches directories in <code>/www/</code> (or any subdirectory thereof)
that consist of three numbers.</p>
<div class="note"><h3>Compatibility</h3>
Prior to 2.3.9, this directive implicitly applied to sub-directories
--> --------------------
--> maximum size reached
--> --------------------
[ 0.105Quellennavigators
]
|
2026-04-02
|