在a2enmod rewrite ,我写了文件/etc/apache2/conf-available/myspecific_rewrite.conf :
RewriteEngine on RewriteRule ^/test(/.*)?$ http://anothersite.tld/test$1 [R] RewriteRule ^/test2(/.*)?$ http://anothersite2.tld/test [R]
然后我在/etc/apache2/conf-enabled创build了a2enconf myspecific_rewrite和正确的符号链接。
问题是这个conf不起作用:重写是不活跃的。
我想要重写所有我的虚拟主机。 我写的这个文件定义了一个<VirtualHost>之外的RewriteRule …有没有办法让它工作?
你可以在每个指向该文件的VirtualHost指令中使用include 。
信息来源: 由Jeremy Bourque评论
替代你可以使用
RewriteEngine On
RewriteOptionsinheritance
在每个VirtualHost上
来源:相同的问题和Apache Docs的mod_rewrite
这是我最后做的:使用mod_alias的Redirect和RedirectMatch指令。
这是我的conf文件:
Redirect permanent /test http://anothersite.tld/test RedirectMatch permanent ^/test2(/.*)?$ http://anothersite2.tld/test
优点:我不需要mod_rewrite了。