域重定向到www时如何将www子域重定向到非www
Posted
技术标签:
【中文标题】域重定向到www时如何将www子域重定向到非www【英文标题】:how to redirect www subdomain to non-www when domain is redirected to www 【发布时间】:2014-03-25 23:03:32 【问题描述】:我的主域目前永久重定向到 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时,它都会提示重定向循环。
希望您能提供帮助!谢谢! :)
【问题讨论】:
htaccess add www if not subdomain, if subdomain remove www的可能重复 【参考方案1】:为所有子域保留这一规则:
# 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]
【讨论】:
我们能否让 http 部分动态化,以便如果网站更改为 https 则它应该是自动的? 如果有人在www.sub.domain.com
之前添加https://
,这将不起作用
绝对是工作规则,与https
无关
假设我有我的子域 xyz.abc.com 现在如果有人浏览到 www.xyz.abc.com 那么它完美地重定向到 xyz.abc.com 但如果有人添加 https:// infront的 www.xyz.abc.com 然后它无法重定向到没有 www
@MrinmoyMk:你能为此发布一个新问题吗?我会在那里发布答案。【参考方案2】:
这一行支持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]
【讨论】:
以上是关于域重定向到www时如何将www子域重定向到非www的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess:将主域重定向到https:// www,子域重定向到https://(不带www)
如何在Heroku上使用Zerigo DNS将根级域重定向到www子域? [关闭]