.htaccess根域需要www和子域不需要www

时间:2011-10-19 10:19:51

标签: .htaccess redirect subdomain web

我想设置如下所示的域名:

example.com - > www.example.com

example.com/page - > www.example.com/page

www.example.com - >不重定向

www.example.com/page - >不重定向


subdomain.example.com - >不重定向

subdomain.example.com/page - >不重定向

www.subdomain.example.com - > subdomain.example.com

www.subdomain.example.com/page - > subdomain.example.com/page


http和https也应该有效。

我从.htaccess to require WWW for domain, but allow subdomain if existing with no hard coding

获取代码
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

它可以很好地适用于所有人,但下面除外:

www.subdomain.example.com - > www.subdomain.example.com

www.subdomain.example.com/page - > www.subdomain.example.com/page

子域名有'www。'前缀但它仍然带有'www。'前缀。

感谢教程。

1 个答案:

答案 0 :(得分:1)

按照您的规则添加此内容

RewriteCond %{HTTPS} ^on$
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$
RewriteRule ^ https://%1%{REQUEST_URI} [L]

RewriteCond %{HTTPS} !^on$
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$
RewriteRule ^ http://%1%{REQUEST_URI} [L]

我还没有测试过,但我很确定我的理论是坚实的。至少假设您的示例中的HTTPS部分有效。