我正在尝试通过 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 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]
最佳答案
强制 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]
关于.htaccess - 使用 htaccess 强制 SSL 和 WWW 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766995/