我有可以像
https://sub.example.com
一样访问的子域,但如果我这样做 www.sub.example.com
它会返回
找不到服务器
目前没有任何
.htaccess
文件,如果我输入sub.example.com
,它会转到https://sub.example.com
,如果我输入www.sub.example.com
,我希望发生同样的事情
有什么想法吗?
您可以尝试以下吗?
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [R=301,NC,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [R=301,NC,L]
或者如果每个请求都必须是
https
并且没有 www
那么我们可以尝试更好。
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [R=301,NC,L]
最好的解决方案是这样的:
# Add www if not subdomain
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Remove www if subdomain
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
结果示例: