用www强制所有域名https

时间:2016-02-21 14:44:39

标签: .htaccess ssl https

我在这个论坛上尝试了12个不同的解决方案,但没有解决方案可行。 我希望我的所有域名都有https://www

现在我正在使用它:

 RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

但现在当我访问www.example.com时,它会重定向到https://www.www.example.com (两次www。)

http://example.com可以完美地重定向到https://www.example.com

2 个答案:

答案 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]