之后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]
然后我a2enconf myspecific_rewrite
和正确的符号链接在中创建/etc/apache2/conf-enabled
。
问题是这个配置不起作用:重写未激活。
我希望该重写对我的所有虚拟主机都有效。我编写的这个文件RewriteRule
在 a 之外定义了 s <VirtualHost>
... 有没有办法让它工作?
答案1
include
您可以在指向该文件的每个 VirtualHost 指令中使用。
信息来源:Jeremy Bourque 的评论
你可以使用
重写引擎开启
RewriteOptions 继承
在每个 VirtualHost 上
来源:同样的问题和Apache mod_rewrite 文档
答案2
这是我最终做的:使用mod_alias和指令Redirect
。RedirectMatch
这是我的配置文件:
Redirect permanent /test http://anothersite.tld/test
RedirectMatch permanent ^/test2(/.*)?$ http://anothersite2.tld/test
优点:我不再需要 mod_rewrite 了。