Apache mod_重写和vhosts配置

Apache mod_重写和vhosts配置,apache,mod-rewrite,Apache,Mod Rewrite,我发现mod_rewrite RewriteRule指令有一个奇怪的行为 文件说: Context: server config, virtual host, directory, .htaccess 作为“服务器配置”,我理解文件“httpd.conf” 如果我在httpd.conf文件上创建了RewriteRule,但没有任何vhost,那么RewriteRule可以正常工作 但是,如果我创建任何vhost,那么httpd.conf文件中的重写规则将不再有效。只有vhost内部的规则

我发现mod_rewrite RewriteRule指令有一个奇怪的行为

文件说:

Context:    server config, virtual host, directory, .htaccess
作为“服务器配置”,我理解文件“httpd.conf”

如果我在httpd.conf文件上创建了RewriteRule,但没有任何vhost,那么RewriteRule可以正常工作

但是,如果我创建任何vhost,那么httpd.conf文件中的重写规则将不再有效。只有vhost内部的规则有效,“服务器配置”中的任何规则都无效


为什么会有这种行为?

这只是mod_rewrite独有的一种奇怪的历史行为——默认情况下不会合并到虚拟主机中。在2.4中,有新的重写选项允许您将重写规则从全局范围“推”到vHost中

有关行为的更多信息,请参见重写选项