我有多个具有不同TLD(.com,.net,.org)的域名,但TLD前面的内容是相同的。
我想将.net和.org重定向到.com,没有www:
www.<domain>.net
,<domain>.net
www.<domain>.org
,<domain>.org
www.<domain>.com
重定向到:
<domain>.com
(没有www) <domain>
是动态的,我不想在.htaccess中对其进行硬编码。
要将www重定向到非www,请使用以下条件:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
我想延长此条件以包括TLD条件并实现301重定向一步。我想避免两个重定向,如:
www.<domain>.net -[301]-> <domain>.net -[301]-> <domain>.com
答案 0 :(得分:1)
从Croises发布的想法开始,这就是我最终的结果:
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)\.(?:net|org)$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)\.(?:com)$ [NC]
RewriteRule ^(.*)$ http://%1.com/$1 [R=301,NE,L]
答案 1 :(得分:0)
您可以使用:
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)\.(?:com|net|org)$ [NC]
RewriteCond %{HTTP_HOST} !^%1\.com$ [NC]
RewriteRule ^ http://%1.com%{REQUEST_URI} [R=301,NE,L]