确定 $_SERVER['HTTPS'] 之外的 HTTPS 连接状态
许多在线教程建议检查 $_SERVER['HTTPS'] 来确定服务器连接是否通过 HTTPS 进行保护。但是,某些服务器上可能未定义 $_SERVER['HTTPS'],从而导致错误。
HTTPS 检测的替代变量
要解决此问题,请考虑使用 isSecure() 函数,即使 $_SERVER['HTTPS'] 为undefined:
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
兼容性和注意事项
负载均衡器和 HTTP_X_FORWARDED_PROTO
请注意,此函数不会测试客户端与潜在负载均衡器之间的连接。要检查这一点,可以利用 HTTP_X_FORWARDED_PROTO 标头,但其实现更为复杂。
以上是如何在 PHP 中可靠地确定 HTTPS 连接状态?的详细内容。更多信息请关注PHP中文网其他相关文章!