我有一个这样设置的网站:
目录结构为:
/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
我在example.com
和example.com/secure
都有 .htaccess 文件有些mod_rewrite规则。
/usr/local/sites/example.com/secure/admin
中没有 .htaccess 文件
然而,当我访问 example2.com 来管理网站时,.htaccess 文件从父目录影响管理页面的功能。
应该是这样吗?阿帕奇不应该应用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发行版很快。
您实际上想要打开重写引擎。由于 htaccess 文件中的规则始终取代父目录中的任何规则(不使用 Injerit
时(,因此您要做的是打开重写引擎,并且 htaccess 文件中没有规则。这会强制它优先于父目录中的规则。
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
而且因为它有优先权并且没有规则,所以不会应用重写内容。