在没有 $_SERVER['HTTPS'] 的情况下确定 HTTPS 使用情况的替代方法
验证 HTTPS 连接的传统方法包括检查 $ 的值_SERVER['HTTPS']。但是,在某些服务器配置上,可能未定义此变量,从而导致错误。
解决方案
为了解决此问题,以下函数提供了可靠的替代方案确定 HTTPS 连接:
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
兼容性和说明
负载均衡器注意事项
此代码仅测试服务器和负载均衡器之间的连接(如果存在负载均衡器)。为了测试客户端和负载均衡器之间的连接,应使用 HTTP_X_FORWARDED_PROTO 标头,尽管这种方法更加复杂。
以上是如何在不依赖 $_SERVER['HTTPS'] 的情况下可靠地检测 HTTPS 使用情况?的详细内容。更多信息请关注PHP中文网其他相关文章!