【问题标题】:Forcing WWW, but want to preserve subdomains?强制使用 WWW,但想保留子域?
【发布时间】:2011-04-24 04:29:25
【问题描述】:
我目前正在强制所有访问者在我的 URL 中使用 www.mydomain.com。但是,我正在建立一个移动站点并希望使用子域 m.mydomain.com。但是,使用的任何子域都会重定向到 www.mydomain.com。我当前用于重定向的 .htaccess 是:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mydomain.com$
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301]
我可以允许 m.mydomain.com 使用 htaccess 重定向吗?
【问题讨论】:
标签:
apache
.htaccess
redirect
http-status-code-301
【解决方案1】:
以下规则应该适合你:
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteCond %{HTTP_HOST} !^(www|m)\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
使用 NC 进行忽略大小写比较很重要,L 用于将其标记为最后一条规则。并且点. 需要在 RewriteCond 中转义。
【解决方案2】:
将您的 RewriteCond 行更改为如下对您有用吗?这将它从仅检查域是否以 www 开头更改为 www 或 m ,所以它看起来就像您正在寻找的那样。
RewriteCond %{HTTP_HOST} !^(www|m).mydomain.com$