我在这个论坛上尝试了12个不同的解决方案,但没有解决方案可行。 我希望我的所有域名都有https://www。
现在我正在使用它:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}
但现在当我访问www.example.com时,它会重定向到https://www.www.example.com (两次www。)
答案 0 :(得分:9)
这是正常行为
实际上,在进行重定向之前,您需要检查主机中是否有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]
答案 1 :(得分:0)
您可以使用以下规则重定向到https://www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.%1%{REQUEST_URI} [L,R]