强制SSL和WWW一起使用htaccess的(Force SSL and WWW together

2019-07-30 18:18发布

我试图运行通过HTTPS和力WWW我的整个网站。

我已经看到了许多强迫提供任何WWW或https,甚至少数的联合解决方案,但我似乎无法得到任何工作。 我经常发现自己在一个重定向循环。

我得到的最接近是下面的,但它不是足够接近尚未:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

我需要https://www.example.com/

http://example.com SUCCESS
https://example.com SUCCESS
http://www.example.com FAIL
https://www.example.com SUCCESS ,虽然没有实际的重定向。

谢谢

更新
下面的代码执行成功需要我重定向:

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Answer 1:

强制HTTPS和www是由其他提供答案的组合来完成。

这似乎工作:

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]


Answer 2:

试试这个情况相反,它应强制该网站为您网域的SSL

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]


Answer 3:

尝试添加[OR]标志,以你的条件。 你真的想要么没有WWW 过https:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]


文章来源: Force SSL and WWW together using htaccess