我有一个由 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
?
恭喜,您在 Apache 文档中发现了一个错误。考虑报告它。
至于您的直接问题,您似乎正在寻找
REQUEST_SCHEME
,其中将包含例如,
http
或https
。