Redirct www2,非www,以及www.domain.com的备用域名

时间:2012-02-10 10:10:15

标签: .htaccess mod-rewrite url-rewriting

我正在尝试重定向以下内容:

domain.com => www.domain.com
www2.domain.com => www.domain.com
www.altdomain.com => www.domain.com
altdomain.com => www.domain.com

我的.htaccess文件大部分都有效,但以下情况失败:

www2.domain.com/about/ => www.domain.com/about/
www2.altdomain.com/about/ => www.domain.com/about/
altdomain.com/about/ => www.domain.com/about/

这是我的.htaccess文件。我做错了什么?

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^bupd\.me [NC]
RewriteRule (.*) http://www.bupipedream.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^bupipedream\.com [NC]
RewriteRule (.*) http://www.bupipedream.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www2\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.bupipedream.com/$1 [R=301,L]

谢谢!

1 个答案:

答案 0 :(得分:0)

你的cond(1)匹配任何不以www.开头的主机,所以你的测试向量就像你说的那样。

将其移至最后,因此bupipedream地图优先。

我还注意到你在规则中改变了你的正则表达式。在这种情况下,^(.*)$(.*)相同,但锚定搜索的开头总是更安全,因为。*贪婪,您不需要尾随$但^(.*)$使其成为现实明确你的意图。