Mod-Rewrite

Ubuntu 14.04 上所有虛擬主機的 RewriteRule?

  • June 12, 2014

之後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>有沒有辦法讓它工作?

您可以include在每個指向該文件的 VirtualHost 指令中使用。

資訊來源:Jeremy Bourque 的 SO 評論

您可以使用的替代方案

重寫引擎開啟

RewriteOptions 繼承

在每個虛擬主機上

來源:mod_rewrite 的相同問題和 Apache Docs

這是我最終所做的:使用mod_aliasRedirectRedirectMatch指令。

這是我的conf文件:

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

優點:我不再需要 mod_rewrite 了。

引用自:https://serverfault.com/questions/604584