⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htaccess.html

📁 这个是我在web培训时老师提供的手册
💻 HTML
📖 第 1 页 / 共 2 页
字号:
    <p>例子:</p>

    <p><code>/www/htdocs/example1</code>目录中的<code>.htaccess</code>文件有如下内容:</p>

    <div class="example"><p><code>
       Options +ExecCGI
    </code></p></div>

    <p>(注意:必须设置"<code>AllowOverride Options</code>"以允许在<code>.htaccess</code>中使用"<code class="directive"><a href="../mod/core.html#options">Options</a></code>"指令)</p>

    <p><code>/www/htdocs/example1/example2</code>目录中的<code>.htaccess</code>文件有如下内容:</p>

    <div class="example"><p><code>
       Options Includes
    </code></p></div>

    <p>由于第二个<code>.htaccess</code>文件的存在,<code>/www/htdocs/example1/example2</code>中的CGI执行是不允许的,而只允许 <code>Options Includes</code> ,它完全覆盖了之前的设置。</p>

    <h3><a name="merge" id="merge">将.htaccess合并到主配置文件中</a></h3>

    <p>正如在<a href="../sections.html">配置段(容器)</a>中讨论的那样,<code>.htaccess</code>文件能够覆盖<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>段中对相应目录的设置,但是也同样会被主配置文件中其它类型的配置段所覆盖。这个特性可以用来强制实施某些配置,甚至在<code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>已经许可的情况下。举个例子来说,为了强迫在<code>.htaccess</code>中禁止脚本执行但不限制其它的情况下,可以这样:</p>

    <div class="example"><p><code>
&lt;Directory /&gt;<br />
<span class="indent">
Allowoverride All<br />
</span>
&lt;/Directory&gt;<br />
<br />
&lt;Location /&gt;<br />
<span class="indent">
Options +IncludesNoExec -ExecCGI<br />
</span>
&lt;/Location&gt;
    </code></p></div>


</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="auth" id="auth">认证举例</a></h2>

    <p>如果你只是为了知道如何认证,而直接从这里开始看的,有很重要的一点需要注意,有一种常见的误解,认为实现密码认证必须要使用<code>.htaccess</code>文件,其实是不正确的。把认证指令放在主配置文件的<code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>段中是一个更好的方法,而<code>.htaccess</code>文件应该仅仅用于无权访问主配置文件的时候。参见<a href="#when">上述</a>关于何时应该与何时不应该使用<code>.htaccess</code>文件的讨论。</p>

    <p>有此声明在先,如果你仍然需要使用<code>.htaccess</code>文件,请继续看以下说明。</p>

    <p><code>.htaccess</code>文件的内容:</p>

    <div class="example"><p><code>
      AuthType Basic<br />
      AuthName "Password Required"<br />
      AuthUserFile /www/passwords/password.file<br />
      AuthGroupFile /www/passwords/group.file<br />
      Require Group admins
    </code></p></div>

    <p>必须设置 <code>AllowOverride AuthConfig</code> 以允许这些指令生效。</p>

    <p>更详细的说明,请参见<a href="auth.html">认证、授权、访问控制</a>。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="ssi" id="ssi">服务器端包含(SSI)举例</a></h2>

    <p><code>.htaccess</code>文件的另一个常见用途是允许一个特定的目录使用服务器端包含(SSI),可以在需要的目录中放置<code>.htaccess</code>文件,并作如下配置:</p>

    <div class="example"><p><code>
       Options +Includes<br />
       AddType text/html shtml<br />
       AddHandler server-parsed shtml
    </code></p></div>

    <p>注意,必须同时设置 <code>AllowOverride Options</code> 和 <code>AllowOverride FileInfo</code> 以使这些指令生效。</p>

    <p>更详细的有关服务器端包含的说明,请参见<a href="ssi.html">SSI指南</a>。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="cgi" id="cgi">CGI举例</a></h2>

    <p>可以通过<code>.htaccess</code>文件允许在特定的目录中执行CGI程序,需要作如下配置:</p>

    <div class="example"><p><code>
       Options +ExecCGI<br />
       AddHandler cgi-script cgi pl
    </code></p></div>

    <p>另外,如下配置可以使给定目录下的所有文件被视为CGI程序:</p>

    <div class="example"><p><code>
       Options +ExecCGI<br />
       SetHandler cgi-script
    </code></p></div>

    <p>注意,必须同时设置 <code>AllowOverride Options</code> 和 <code>AllowOverride FileInfo</code> 以使这些指令生效。</p>

    <p>更详细的有关CGI编程和配置的说明,请参见<a href="cgi.html">CGI指南</a>。</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="troubleshoot" id="troubleshoot">疑难解答</a></h2>

    <p>如果在<code>.htaccess</code>文件中的某些指令不起作用,可能有多种原因。</p>

    <p>最常见的原因是<code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>指令没有被正确设置,必须确保没有对此文件区域设置 <code>AllowOverride None</code> 。有一个很好的测试方法,就是在<code>.htaccess</code>文件随便增加点无意义的垃圾内容,如果服务器没有返回了一个错误消息,那么几乎可以断定设置了 <code>AllowOverride None</code> 。</p>

    <p>在访问文档时,如果收到服务器的出错消息,应该检查Apache的错误日志,可以知道<code>.htaccess</code>文件中哪些指令是不允许使用的,也可能会发现需要纠正的语法错误。</p>

</div></div>
<div id="footer">
<p class="apache">本文允许自由使用、分发、转载,但必须保留译者署名;详见:<a href="../translator_announcement.html#announcement">译者声明</a>。</p>
<p class="menu"><a href="../mod/index.html">模块索引</a> | <a href="../mod/directives.html">指令索引</a> | <a href="../faq/index.html">常见问题</a> | <a href="../glossary.html">词汇表</a> | <a href="../sitemap.html">站点导航</a></p></div>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -