所有子域(www 和非 www)的单个 htaccess 重定向到文件夹


Single htaccess redirect for all subdomains (www and non-www) to folder

我有一个有40个子域的网站。

我想添加 301 htaccess 重定向...

1) domain.com 到 www.domain.com

2) www.sub-domain.domain.com 到 www.domain.com/sub-domain

3) sub-domain.domain.com www.domain.com/sub-domain

我已经用下面的代码实现了 1 和 3 重定向......

RewriteCond %{HTTP_HOST} ^domain'.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^sub-domain'.domain'.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

您可以使用:

RewriteCond %{HTTP_HOST} ^domain'.com$ [NC]
RewriteRule ^ http://www.domain.com%{REQUEST_URI} [R=301,L,NE]
RewriteCond %{HTTP_HOST} ^(?:www'.)?((?!www).+)'.domain'.com$ [NC]
RewriteRule !^%1 http://www.domain.com/%1%{REQUEST_URI} [R=301,L,NE]

这段代码将帮助您使用第一个选项,并且无论域如何,它都可以工作,它是通用的,因此您不必创建 40 行代码。

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