阿帕奇.htaccess
Posted
技术标签:
【中文标题】阿帕奇.htaccess【英文标题】:Apache .htaccess 【发布时间】:2011-02-25 17:12:46 【问题描述】:我有一个 htaccess 问题。
我的目录结构如下:
/
HEADER.html
README.html
/***/
/***/.htaccess
.htaccess
ServerSignature Off
Options +Indexes
HeaderName /HEADER.html
IndexIgnore HEADER.html
ReadmeName /README.html
IndexIgnore /README.html
IndexOptions +FancyIndexing
AddCharset UTF-8 .txt
IndexIgnore *.xml
IndexIgnore *.php
我的主目录是 /***/,当我通过浏览器导航到这个目录时,我在 /***/ 下的每个站点/目录中都包含了 HEADER.html 和 README.html,这工作正常。
我向我的 HEADER.html(位于根目录 / )中添加了一些 php 代码,我正在尝试添加到 htaccess:
AddType application/x-httpd-php .html .php .htm
这不起作用,我认为是因为 HEADER.html 在根目录中。
如果我尝试将 AddType... 添加到 /.htaccess(而不是 /***/.htaccess),它会覆盖我的 /***/.htaccess 规则。为什么?如何将 AddType 规则添加到我的 /***/.htaccess 以将 Apache 解析 html 文件作为 php 文件?
【问题讨论】:
【参考方案1】:您的 PHP 解析器将按照设计的方式忽略 .html 文件。 .html
应该不被处理,如果你想在你的头文件中添加额外的逻辑,你必须将它转换为.phtml
或.php
。您还可以创建一个新的头文件,然后只包含 html。
关于.htaccess
覆盖的问题,这就是apache mod_rewrite 的工作方式。这是一个分层系统,将加载它遇到的第一个系统,从/移动到请求的文件。
【讨论】:
【参考方案2】:HeaderName /HEADER.php
AddType text/html .php
<Files "*.php">
AddHandler application/x-httpd-php .php
</Files>
【讨论】:
【参考方案3】:.htaccess 文件会影响它所在的目录和任何子目录。它不能对树中它上面的目录做任何事情。查看htaccess docs 了解更多详情。
因此,如果您想保留 .html 扩展名,则必须在根级别“/.htaccess”执行“AddType application/x-httpd-php .html .php .htm”。或者,正如 Matt S 建议的那样,将扩展名更改为作为 PHP 处理的内容。
【讨论】:
以上是关于阿帕奇.htaccess的主要内容,如果未能解决你的问题,请参考以下文章
APACHE,HTACCESS:Proteger une répertoire avec une authentication classique en HTACCESS.阿帕奇,HTACCESS:
阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕奇·阿帕奇·德斯德·阿帕