Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用htaccess强制SSL和WWW连接在一起_.htaccess_Redirect_Ssl - Fatal编程技术网

.htaccess 使用htaccess强制SSL和WWW连接在一起

.htaccess 使用htaccess强制SSL和WWW连接在一起,.htaccess,redirect,ssl,.htaccess,Redirect,Ssl,我试图通过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来运行我的整个网站

我见过许多解决方案提供强制使用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 成功

https://example.com 成功

http://www.example.com 失败

https://www.example.com 成功
,尽管没有实际的重定向

谢谢

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

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]

尝试将
[或]
标志添加到您的条件中。您真的不想使用www或https:

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

请尝试此条件,它将强制站点进入您域的ssl

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

强制使用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]

这确实有效,生成的URL是我想要的,尽管我看到了重定向循环消息,而不是站点。@JasonVarga不确定当原始规则不强制SSL但不强制www时,为什么会导致重定向循环。我使用了您的规则与另一个规则的组合来成功重定向我想要的方式。谢谢。如果你已经找到了更新建议的解决方案,请自己发布并接受。帮助维护网站的问答性质。