我的网站设置方式如下:
目录结构是:
/usr/local/sites/example.com/secure/admin
example.com:80的apache中的主要主机配置指向
/usr/local/sites/example.com
example.com:443的https配置指向
/usr/local/sites/example.com/secure
我有另一个使用不同域的虚拟主机,我们可以调用它 example2.com:443我严格使用指向的管理员:
/usr/local/sites/example.com/secure/admin
我在example.com
和example.com/secure
都有.htaccess文件
一些mod_rewrite规则。
/usr/local/sites/example.com/secure/admin
然而,当我访问example2.com来管理网站时,.htaccess文件 来自父目录会影响管理页面的功能。
它应该是这样的吗?不应该apache应用 mod_rewrite规则仅在虚拟主机的文档根目录中?
我尝试在。/usr/local/sites/example.com/secure/admin
中添加.htaccess文件
以下内容:
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
的Apache:
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/0.9.8r
这是在Mac OS X服务器上,如果它很重要(这就是我无法解决的原因) 更新apache或php)。我希望将硬件发送到Linux发行版 很快。
答案 0 :(得分:1)
您实际上想要将重写引擎置于。因为htaccess文件中的规则总是取代父目录中的任何规则(当不使用Injerit
时),所以要做的是打开重写引擎并且 no rules in你的htaccess文件。这会强制它优先于父目录中的规则。
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
因为它具有优先权并且没有规则,所以不会应用重写内容。