1

我有一个这样设置的网站:

目录结构为:

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

apache 中的主要主机配置,例如 example.com:80 指向

/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

我有 .htaccess 文件example.comexample.com/secure一些 mod_rewrite 规则。

中没有 .htaccess 文件/usr/local/sites/example.com/secure/admin

然而,当我访问 example2.com 来管理站点时,父目录中的 .htaccess 文件会影响管理页面的功能。

应该是这样吗?apache 不应该只在虚拟主机的文档根目录中应用 mod_rewrite 规则吗?

我尝试使用以下内容放入 .htaccess 文件/usr/local/sites/example.com/secure/admin

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

阿帕奇:

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 发行版。

4

1 回答 1

1

您实际上想打开重写引擎因为 htaccess 文件中的规则总是取代父目录中的任何规则(当Injerit不使用时),所以您要做的是打开重写引擎并且在您的 htaccess 文件中没有规则。这迫使它优先于父目录中的规则。

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

而且因为它有优先权并且没有规则,所以不会应用重写的东西。

于 2013-09-26T23:06:28.197 回答