我正在尝试重定向以下内容:
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]
谢谢!
答案 0 :(得分:0)
你的cond(1)匹配任何不以www.
开头的主机,所以你的测试向量就像你说的那样。
将其移至最后,因此bupipedream地图优先。
我还注意到你在规则中改变了你的正则表达式。在这种情况下,^(.*)$
与(.*)
相同,但锚定搜索的开头总是更安全,因为。*贪婪,您不需要尾随$但^(.*)$
使其成为现实明确你的意图。