我对重定向有点迷茫。
我希望 mysite.com、www.mysite.com 和 www.mysite.co.uk 重定向到 mysite.co.uk。
在 Apache 中,我为 mysite.co.uk 编写了这段代码,以便将 www 重定向到根域:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www
RewriteRule ^/(.*) http://mysite.co.uk/$1 [L,R=301]
对于 mysite.com,我写了这个重定向到 mysite.co.uk:
ServerName www.mysite.com
RewriteEngine on
RewriteRule ^/(.*) http://mysite.co.uk/$1 [L,R=301]
这样,我可以让重定向从 www.mysite.com 正常到 mysite.co.uk,但同时对 mysite.com 和 mysite.co.uk(不带 www)不起作用。有人能告诉我如何使所有重定向在所有情况下都起作用吗?
答案1
在 www.mysite.com 的配置中,添加以下内容;
ServerAlias mysite.com
这也会使得 VirtualHost 响应该主机名,并且由于 VirtualHost 条目中的唯一配置是重定向,因此它会响应。为了获得加分,您还可以添加;
ServerAlias www.mysite.co.uk
并完全放弃第一个 VirtualHost 条目中的 RewriteRules。