【发布时间】:2023-04-03 13:14:01
【问题描述】:
我有一些文件如下所示
|.htaccess
|-index.php
|-subfolder
|--.htaccess
一个.htaccess 文件在根文件夹中,另一个.htaccess 文件在一个子文件夹中
root 的.htaccess 有以下代码
<If "%{HTTP_HOST} == 'abc.web.com'">
php_value auto_prepend_file "/var/www/vhosts/abc.web.com/common.php"
</If>
<Else>
php_value auto_prepend_file "/var/www/vhosts/def.web.com/common.php"
</Else>
和子文件夹的.htaccess 文件具有以下代码
AuthUserFile /var/www/vhosts/abc.web.com/.htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic
<Limit GET>
require valid-user
</Limit>
现在的问题是 <Limit GET> 块只有在根的 .htaccess 文件中注释掉 If else 块后才能工作。
如果 if else 代码块存在于根目录的 .htaccess 文件中,则子文件夹的 .htaccess 文件中的 Limit get 代码块不起作用。
知道它为什么会这样!
编辑 - 1:
即使我注释掉根的.htaccess 文件的If 和Else 块中的代码,Limit 的东西在子文件夹的.htaccess 中仍然不起作用
根的
.htaccess
<If "%{HTTP_HOST} == 'abc.web.com'">
#php_value auto_prepend_file "/var/www/vhosts/abc.web.com/common.php"
</If>
<Else>
#php_value auto_prepend_file "/var/www/vhosts/def.web.com/common.php"
</Else>
子文件夹的htaccess 中的Limit 仅在我完全注释掉/删除全部If Else 根.htaccess 块时才有效!!
为什么.htaccess 两个文件之间存在这种依赖关系!
【问题讨论】:
标签: php apache .htaccess mod-rewrite web