.htaccess 使用htaccess强制SSL和WWW连接在一起
我试图通过https和强制www来运行我的整个网站 我见过许多解决方案提供强制使用www或https,甚至还有一些组合,但我似乎无法让任何解决方案发挥作用。我通常发现自己处于重定向循环中 我得到的最接近的结果如下,但还不够接近:.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] 我需
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时,为什么会导致重定向循环。我使用了您的规则与另一个规则的组合来成功重定向我想要的方式。谢谢。如果你已经找到了更新建议的解决方案,请自己发布并接受。帮助维护网站的问答性质。