我有一个由Apache 2.4服务的网站,它应该通过HTTPS提供所有内容。 我已经有适当的redirect了,但没有发现任何病理情况。 我想改善这种情况,当我做作业的时候,在这个文档中遇到了下面这个例子:
<If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/admin/" "https://www.example.com/admin/" </If>
我稍微修改了这个以反映我的情况:
<If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/" "https://www.example.com/" </If>
现在,当试图从我的网站查看任何url时,浏览器进入无限redirect循环。
我怀疑这个例子实际上是错的。 SERVER_PROTOCOL在任何情况下都不包含HTTPS值。 相反,根据我在其他文章中读到的内容,它包含了诸如HTTP/1.1 (正如名字所期待的)。
所以我的问题是:什么情况下/什么情况下, SERVER_PROTOCOL究竟包含什么内容? 在几个小时的研究中,Apache官方文档网站是唯一一个将HTTPS列为SERVER_PROTOCOL的可能值的网站,原因可能是什么呢?
恭喜,您在Apache文档中发现错误。 考虑报告。
至于你的直接问题,你似乎正在寻找REQUEST_SCHEME , 其中将包含
请求的URI的scheme部分
例如http或https 。