我遇到了访问htaccess的问题。
我的目录结构如下所示:
/
HEADER.html
README.html
/stackoverflow/
/stackoverflow/.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我的主目录是/stackoverflow/,当我通过浏览器导航到这个目录时,我已经在/stackoverflow/下的每个站点/目录中包含了HEADER.html和README.html,这很好用。
我添加了一些php代码到我的HEADER.html (在根目录/中),我正在尝试添加到htaccess:
AddType应用程序/x-httpd-php .html .php .htm
这不起作用,我想是因为HEADER.html在根目录中。
如果我尝试添加AddType...对于/.htaccess (而不是/stackoverflow/.htaccess),它会覆盖我的/stackoverflow/.htaccess规则。为什么?如何将AddType规则添加到我的/stackoverflow/.htaccess中,以便将Apache parse html文件作为php文件?
发布于 2010-05-30 23:21:26
您的PHP解析器将忽略.html文件,因为它的设计。.html应该呈现为not processed,如果你想在你的头文件中添加额外的逻辑,你必须将它转换为.phtml或.php。您也可以创建一个新的头文件,然后只包含html。
关于.htaccess覆盖的问题,这就是apache mod_rewrite的工作原理。这是一个层次化的系统,它将加载它遇到的第一个文件,从请求的文件开始/向请求的文件移动。
发布于 2010-05-30 23:39:21
HeaderName /HEADER.php
AddType text/html .php
<Files "*.php">
AddHandler application/x-httpd-php .php
</Files> 发布于 2010-05-30 23:51:00
.htaccess文件会影响它所在的目录和所有子目录。它不能对树中它上面的目录做任何事情。有关更多详细信息,请查看htaccess docs。
因此,如果您想保留应用程序扩展,则必须在根级别“.html”执行"AddType .html /x-httpd-php.html .php .htm“。或者,正如Matt S建议的那样,将扩展更改为作为PHP处理的内容。
https://stackoverflow.com/questions/2939129
复制相似问题