htaccess修改在某些页面上工作但在其他页面上没有?

时间:2012-03-29 13:57:34

标签: php html apache .htaccess xampp

我一直在尝试在扩展名为.htm或.html的文档中执行php代码。我终于使用了它:

AddType application / x-httpd-php .php .html .htm

现在,能够在.htm文档中执行php,只有在我直接进入.htm页面时才有效,例如:http://www.foobar.com/layout.htm

但是,如果我转到使用那个layout.htm页面的index.php页面,它就不起作用了......

这是索引页面网址的示例:http://www.foobar.com/index.php

我做错了什么?

2 个答案:

答案 0 :(得分:1)

假设您在php文件中使用类似include的内容来包含html文件,则.htaccess规则对所包含的文件不会产生任何影响。

.htaccess规则仅在对apache web-server发出的请求上执行,当你在php中包含本地文件时,你只是在本地文件系统上请求一个文件;你没有通过apache请求它。

修改:根据您问题下方的评论,您也可能使用类似readfile的内容来获取htm文件的内容。如果是这种情况,则需要将其更改为include,以便执行php。

答案 1 :(得分:1)

您的.htaccess规则不适用于php中包含的文件。

您是否查看过此页:http://php.net/manual/en/function.include.php

当包含文件时,解析将退出PHP模式并在目标文件的开头进入HTML模式,并在结束时再次恢复。因此,目标文件中应作为PHP代码执行的任何代码都必须包含在有效的PHP开始和结束标记中。