现在我所有的mod_rewrite相关语句都在我的VHost配置文件中。我想将常见的移动到我的apache配置文件中。但是,当我移动这两个陈述中的任何一个时
RewriteEngine on
RewriteMap domainMapper prg:foo/bar.php
网站破了。查看mod_rewrite documents表示RewriteMap指令应该在server config
和virtual host
上下文中都有效。然而,这种情况并非如此。有人可以澄清我是做错了什么,还是没有做必要的事情?
答案 0 :(得分:1)
您可以将重写放在VirtualHost
条目之外。但是,必须将重写提取到虚拟主机上下文中,因为这是处理URL的位置。你必须设置
RewriteEngine on # turn on rewrites in this vhost
RewriteOptions Inherit # inherit rules from outside scope
在每个VirtualHost
中,这些外部重写将处于活动状态。启用引擎不是继承的,因此Inherit
本身是不够的。
有关详细信息,请参阅文档:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions