![变量 SERVER_PROTOCOL 实际上到底包含什么(Apache 2.4)?](https://linux22.com/image/697388/%E5%8F%98%E9%87%8F%20SERVER_PROTOCOL%20%E5%AE%9E%E9%99%85%E4%B8%8A%E5%88%B0%E5%BA%95%E5%8C%85%E5%90%AB%E4%BB%80%E4%B9%88%EF%BC%88Apache%202.4%EF%BC%89%EF%BC%9F.png)
我有一个由 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
?