Ubuntu 14.04 上所有 VirtualHosts 的重写规则?

Ubuntu 14.04 上所有 VirtualHosts 的重写规则?

之后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和指令RedirectRedirectMatch

这是我的配置文件:

Redirect permanent /test http://anothersite.tld/test
RedirectMatch permanent ^/test2(/.*)?$ http://anothersite2.tld/test

优点:我不再需要 mod_rewrite 了。

相关内容