影响父目录的htaccess文件

时间:2013-09-26 23:01:41

标签: php apache .htaccess mod-rewrite osx-server

我的网站设置方式如下:

目录结构是:

/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.comexample.com/secure都有.htaccess文件 一些mod_rewrite规则。

/usr/local/sites/example.com/secure/admin

中没有.​​htaccess文件

然而,当我访问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发行版 很快。

1 个答案:

答案 0 :(得分:1)

您实际上想要将重写引擎置于。因为htaccess文件中的规则总是取代父目录中的任何规则(当不使用Injerit时),所以要做的是打开重写引擎并且 no rules in你的htaccess文件。这会强制它优先于父目录中的规则。

<IfModule mod_rewrite.c>
    RewriteEngine On
</IfModule>

因为它具有优先权并且没有规则,所以不会应用重写内容。