我有一个由 Apache 2.4 提供服务的网站,该网站应该通过 HTTPS 提供所有内容。我已经设置了适当的重定向,这些重定向工作正常,但没有发现任何异常情况。我想改善这种情况,在做作业时,我偶然发现了以下示例这个文件:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/admin/" "https://www.example.com/admin/"
</If>
我对此做了一些修改以反映我的情况:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/" "https://www.example.com/"
</If>
现在,当尝试查看我的网站的任何 URL 时,浏览器都会进入无限重定向循环。
我怀疑这个例子其实是错的。SERVER_PROTOCOL
似乎在任何情况下都不包含值HTTPS
。相反,根据我在其他文章中读到的内容,它包含类似的东西HTTP/1.1
(正如名称所期望的那样)。
所以我的问题是:SERVER_PROTOCOL
在什么情况下/什么上下文中到底包含什么?为什么我在几个小时的研究中发现,Apache 官方文档网站是唯一一个列出HTTPS
可能值的网站SERVER_PROTOCOL
?