📄 core.html
字号:
<ul>
<li><a href="../howto/auth.html">认证、授权、访问控制</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="AuthType" id="AuthType">AuthType</a> <a name="authtype" id="authtype">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>用户认证类型</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>AuthType Basic|Digest</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">覆盖项</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>核心(C)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>core</td></tr>
</table>
<p>此指令选择了一个目录的用户认证类型。目前只实现了<code>Basic</code>(<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>)和<code>Digest</code>(<code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>)。</p>
<p>要实现认证,还必须同时与<code class="directive"><a href="#authname">AuthName</a></code>和<code class="directive"><a href="#require">Require</a></code>指令一起使用。另外,服务器还必须包含一个认证支持模块(比如<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)和一个授权支持模块(比如<code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>)。</p>
<h3>参见</h3>
<ul>
<li><a href="../howto/auth.html">认证、授权、访问控制</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">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>定位CGI脚本解释器</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>CGIMapExtension <var>cgi-path</var> <var>.extension</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">覆盖项</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>核心(C)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>core</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td>NetWare only</td></tr>
</table>
<p>此指令用于定位Apache CGI脚本解释器。比如,"<code>CGIMapExtension sys:\foo.nlm .foo</code>"将把所有具有<code>.foo</code>后缀的CGI脚本文件传递给FOO解释器。</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="ContentDigest" id="ContentDigest">ContentDigest</a> <a name="contentdigest" id="contentdigest">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>允许生成<code>Content-MD5</code>应答头</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>ContentDigest On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>ContentDigest Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">覆盖项</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>核心(C)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>core</td></tr>
</table>
<p>此指令遵照RFC1854和RFC2068协议的定义启用了<code>Content-MD5</code>应答头的生成。</p>
<p>MD5是一种为不定长度的数据计算出一个"消息摘要"(有时也称为"指纹")的算法。并且保证数据中的任何变化都会反应在消息摘要的变化中。</p>
<p><code>Content-MD5</code>头提供了一种端到端的针对整个消息体的信息完整性检查方法。代理或者客户端会检查此头以侦测在传输过程中,消息体是否产生了意外的改变。一个头的例子如下:</p>
<div class="example"><p><code>
Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
</code></p></div>
<p>请注意,因为对每个请求都要进行消息摘要的运算(没有对其值进行缓存),所以这会对您的服务器造成性能方面的影响。</p>
<p><code>Content-MD5</code>仅为由<code class="module"><a href="../mod/core.html">Apache核心</a></code>伺服的文档进行发送,而对于由模块处理的文档则不予理会。比如说SSI文档、CGI脚本的输出、字节范围的应答都不包括这个头。</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="DefaultType" id="DefaultType">DefaultType</a> <a name="defaulttype" id="defaulttype">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>在服务器无法由其他方法确定内容类型时,发送的默认MIME内容类型</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DefaultType <var>MIME-type</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>DefaultType text/plain</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">覆盖项</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>核心(C)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>core</td></tr>
</table>
<p>有时会发生这样的事:服务器会被要求提供一个文档,而这个文档的类型无法由它的<a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME类型</a>映射所决定。</p>
<p>服务器必须通知客户端其文档的内容类型。所以当一个未知类型出现时,将会使用<code>DefaultType</code> 。例如:</p>
<div class="example"><p><code>
DefaultType image/gif
</code></p></div>
<p>这样的配置对于里面有很多gif图片而有些在文件名中缺少<code>.gif</code>扩展名的目录非常合适。</p>
<p>注意,与<code class="directive"><a href="#forcetype">ForceType</a></code>指令的不同之处在于:此指令仅提供了默认的mime类型。所有其它mime类型的定义,包括文件的扩展名,或其它可以标识媒体类型的方法都会覆盖此默认值。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Directory" id="Directory"><Directory></a> <a name="directory" id="directory">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>封装一组指令,使之仅对文件空间中的某个目录及其子目录生效</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code><Directory <var>directory-path</var>>
... </Directory></code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>核心(C)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>core</td></tr>
</table>
<p><code class="directive"><Directory></code>和<code></Directory></code>用于封装一组指令,使之仅对某个目录及其子目录生效。任何可以在"directory"作用域中使用的指令都可以使用。<var>Directory-path</var>可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"<code>?</code>"匹配任何单个的字符,"<code>*</code>"匹配任何字符序列。您也可以使用"<code>[]</code>"来确定字符范围。以上通配符都不能匹配"/"字符。所以<code><Directory /*/public_html></code>将无法匹配<code>/home/user/public_html</code> ,但<code><Directory /home/*/public_html></code>能够正确匹配。比如说:</p>
<div class="example"><p><code>
<Directory /usr/local/httpd/htdocs><br />
<span class="indent">
Options Indexes FollowSymLinks<br />
</span>
</Directory>
</code></p></div>
<div class="note">
<p>使用<var>directory-path</var>参数的时候要注意:它们必须与Apache用于访问文件的文件系统路径保持一致。赋予特定<code><Directory></code>的指令将无法对通过不同路径指向的同一个目录文件生效,比如说通过另外一个符号连接生成的路径。</p>
</div>
<p>扩展的<a class="glossarylink" href="../glossary.html#regex" title="see glossary">正则表达式</a>也可以通过附加一个"<code>~</code>"字符来使用。比如说:</p>
<div class="example"><p><code>
<Directory ~ "^/www/(.+/)*[0-9]{3}">
</code></p></div>
<p>将匹配<code>/www/</code>下所有由3个数字组成的目录。</p>
<p>如果有多个(非正则表达式)<code class="directive"><Directory></code>配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用。并包含<a href="#accessfilename">.htaccess</a>文件中的指令。比如说在</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>
<p>中,访问文档<code>/home/web/dir/doc.html</code>的步骤如下:</p>
<ul>
<li>应用指令<code>AllowOverride None</code>(禁用<code>.htaccess</code>文件)。</li>
<li>应用指令<code>AllowOverride FileInfo</code>(针对<code>/home</code>目录)。</li>
<li>按顺序应用所有<code>/home/.htaccess</code> 、<code>/home/web/.htaccess</code> 、<code>/home/web/dir/.htaccess</code>中的<code>FileInfo</code>组指令。</li>
</ul>
<p>正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。比如说,以下配置:</p>
<div class="example"><p><code>
<Directory ~ abc$><br />
<span class="indent">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -