📄 core.html.en
字号:
<p>For server configurations that are vulnerable to these problems,
you should disable this feature by specifying:</p>
<div class="example"><p><code>
EnableSendfile Off
</code></p></div>
<p>For NFS or SMB 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>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ErrorDocument" id="ErrorDocument">ErrorDocument</a> <a name="errordocument" id="errordocument">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>What the server will return to the client
in case of an error</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ErrorDocument <var>error-code</var> <var>document</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Quoting syntax for text messages is different in Apache
2.0</td></tr>
</table>
<p>In the event of a problem or error, Apache can be configured
to do one of four things,</p>
<ol>
<li>output a simple hardcoded error message</li>
<li>output a customized message</li>
<li>redirect to a local <var>URL-path</var> to handle the
problem/error</li>
<li>redirect to an external <var>URL</var> to handle the
problem/error</li>
</ol>
<p>The first option is the default, while options 2-4 are
configured using the <code class="directive">ErrorDocument</code>
directive, which is followed by the HTTP response code and a URL
or a message. Apache will sometimes offer additional information
regarding the problem/error.</p>
<p>URLs can begin with a slash (/) for local web-paths (relative
to the <code class="directive"><a href="#documentroot">DocumentRoot</a></code>), or be a
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"
</code></p></div>
<p>Additionally, the special value <code>default</code> can be used
to specify Apache's simple hardcoded message. While not required
under normal circumstances, <code>default</code> will restore
Apache'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>
<p>Note that when you specify an <code class="directive">ErrorDocument</code>
that points to a remote URL (ie. anything with a method such as
<code>http</code> in front of it), Apache will send a redirect to the
client to tell it where to find the document, even if the
document ends up being on the same server. This has several
implications, the most important being that the client will not
receive the original error status code, but instead will
receive a redirect status code. This in turn can confuse web
robots and other clients which try to determine if a URL is
valid using the status code. In addition, if you use a remote
URL in an <code>ErrorDocument 401</code>, the client will not
know to prompt the user for a password since it will not
receive the 401 status code. Therefore, <strong>if you use an
<code>ErrorDocument 401</code> directive then it must refer to a local
document.</strong></p>
<p>Microsoft Internet Explorer (MSIE) will by default ignore
server-generated error messages when they are "too small" and substitute
its own "friendly" error messages. The size threshold varies depending on
the type of error, but in general, if you make your error document
greater than 512 bytes, then MSIE will show the server-generated
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
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
will be immediately halted and the internal error message returned.
This is necessary to guard against security problems caused by
bad requests.</p>
<p>Prior to version 2.0, messages were indicated by prefixing
them with a single unmatched double quote character.</p>
<h3>See also</h3>
<ul>
<li><a href="../custom-error.html">documentation of
customizable responses</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="ErrorLog" id="ErrorLog">ErrorLog</a> <a name="errorlog" id="errorlog">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Location where the server will log errors</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> ErrorLog <var>file-path</var>|syslog[:<var>facility</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</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>The <code class="directive">ErrorLog</code> directive sets the name of
the file to which the server will log any errors it encounters. If
the <var>file-path</var> is not absolute then it is assumed to be
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>
<p>If the <var>file-path</var>
begins with a pipe (|) then it is assumed to be a command to spawn
to handle the error log.</p>
<div class="example"><h3>Example</h3><p><code>
ErrorLog "|/usr/local/bin/httpd_errors"
</code></p></div>
<p>Using <code>syslog</code> instead of a filename enables logging
via syslogd(8) if the system supports it. The default is to use
syslog facility <code>local7</code>, but you can override this by
using the <code>syslog:<var>facility</var></code> syntax where
<var>facility</var> can be one of the names usually documented in
syslog(1).</p>
<div class="example"><h3>Example</h3><p><code>
ErrorLog syslog:user
</code></p></div>
<p>SECURITY: See the <a href="../misc/security_tips.html#serverroot">security tips</a>
document for details on why your security could be compromised
if the directory where log files are stored is writable by
anyone other than the user that starts the server.</p>
<div class="warning"><h3>Note</h3>
<p>When entering a file path on non-Unix platforms, care should be taken
to make sure that only forward slashed are used even though the platform
may allow the use of back slashes. In general it is a good idea to always
use forward slashes throughout the configuration files.</p>
</div>
<h3>See also</h3>
<ul>
<li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
<li><a href="../logs.html">Apache Log Files</a></li>
</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="FileETag" id="FileETag">FileETag</a> <a name="fileetag" id="fileetag">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File attributes used to create the ETag
HTTP response header</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FileETag <var>component</var> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FileETag INode MTime Size</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<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>
The <code class="directive">FileETag</code> directive configures the file
attributes that are used to create the <code>ETag</code> (entity
tag) response header field when the document is based on a file.
(The <code>ETag</code> value is used in cache management to save
network bandwidth.) In Apache 1.3.22 and earlier, the
<code>ETag</code> value was <em>always</em> formed
from the file's inode, size, and last-modified time (mtime). The
<code class="directive">FileETag</code> directive allows you to choose
which of these -- if any -- should be used. The recognized keywords are:
</p>
<dl>
<dt><strong>INode</strong></dt>
<dd>The file's i-node number will be included in the calculation</dd>
<dt><strong>MTime</strong></dt>
<dd>The date and time the file was last modified will be included</dd>
<dt><strong>Size</strong></dt>
<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>
<dt><strong>None</strong></dt>
<dd>If a document is file-based, no <code>ETag</code> field will be
included in the response</dd>
</dl>
<p>The <code>INode</code>, <code>MTime</code>, and <code>Size</code>
keywords may be prefixed with either <code>+</code> or <code>-</code>,
which allow changes to be made to the default setting inherited
from a broader scope. Any keyword appearing without such a prefix
immediately and completely cancels the inherited setting.</p>
<p>If a directory's configuration includes
<code>FileETag
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -