fro*_*uke 5 apache url .htaccess https web
我制作了一个 .htaccess 文件来将所有网站流量重定向到https://www..
这是我完整的 .htaccess 文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
以下重定向完全按预期工作:
http://example.com -> https://www.example.com
https://example.com -> https://www.example.com
https://www.example.com -> https://www.example.com
Run Code Online (Sandbox Code Playgroud)
除了:
http://www.example.com -> http://www.example.com
Run Code Online (Sandbox Code Playgroud)
如上所示,如果你去http://www.它不会重定向到 HTTPS 版本。
谁能帮我理解为什么其他重定向工作正常,但那个不是?
附加说明:我查看了 StackOverflow 上的许多帖子,但他们的大多数解决方案都以重定向循环错误告终。
在联系 123-Reg(我的托管提供商)后,他们提交了这个解决方案,效果非常好:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)
基本上,他们将脚本设置为执行两项任务:将域更改为WWW,如果尚未更改,则更改为HTTPS。此外,他们使用了ENV:HTTPS,这与他们的文档 ( ) 中找到的内容不同ENV:SSL。
很高兴能够对此进行排序,也许这会对使用 123-Reg Hosting 的其他人有所帮助。