我在这个论坛上尝试了 12 种不同的解决方案,但没有一种可行。 我希望我所有的域都有 https://www .
现在我正在使用这个:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}
但现在当我访问 www.example.com 时,它会重定向到 https://www.www.example.com (两次 www.)
最佳答案
这是正常行为。
实际上,在进行重定向之前,您需要检查 www
是否在主机中。
一个简单的方法是将问题分为两种情况
RewriteEngine on
# redirect http://www.example.com to https://www.example.com
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# redirect http(s)://example.com to https://www.example.com
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
关于.htaccess - 强制所有域 https 和 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537527/