我想设置如下所示的域名:
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。'前缀。
感谢教程。
答案 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部分有效。