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

时间:2015-01-09 11:58:42

标签: php apache .htaccess mod-rewrite redirect

我的网站有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]

2 个答案:

答案 0 :(得分:1)

您可以使用:

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]

答案 1 :(得分:-1)

这段代码将为您提供第一个选项,无论域名是什么,它都是通用的,因此您不必创建40行代码。

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