9

我的主域目前永久重定向到www.mydomain.com(非 www 到 www 重定向),.htaccess 如下:

RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^/?$ "http\:\/\/www\.mydomain\.com\/" [R=301,L]

RewriteCond %{HTTP_REFERER} !^http://mydomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://mydomain.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mydomain.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mydomain.com$      [NC]

我想知道我将如何创建所有子域,例如。blog.mydomain.com,将被重定向到非 www,例如。blog.mydomain.com,而不是 www.blog.mydomain.com。每次我创建一个子域并在浏览器中输入非 www 的 URL 时,它都会提示一个重定向循环。

希望你能帮忙!谢谢!:)

4

2 回答 2

20

为所有子域保留这一规则:

# rule for forcing www on main domain
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# rule for removing www on sub domains
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.mydomain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
于 2014-02-24T11:11:43.617 回答
3

这一行支持http+ https

# Redirect www subdomain to non-www 
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.yourdomain\.com)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [R=301,L]
于 2016-11-05T11:34:30.750 回答