使用htaccess强制SSL和WWW

Jas*_*rga 6 .htaccess ssl redirect

我试图通过https运行我的整个网站并强制www.

我已经看到许多解决方案提供强制www或https,甚至一些组合,但我似乎无法得到任何工作.我经常发现自己处于重定向循环中.

我得到的最接近的是以下,但它还不够近:

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

我需要 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]
Run Code Online (Sandbox Code Playgroud)

Jas*_*rga 5

强制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]
Run Code Online (Sandbox Code Playgroud)