php 判断是否为https

在网上看了很多判断https的方法都是千篇一律,
主要是从$_SERVER去判断
参考链接:
https://blog.csdn.net/river13...
https://segmentfault.com/q/10...

但是现在nginx做了反向代理
$_SERVER里没有如下参数:
HTTPS
HTTP_X_FORWARDED_PROTO
HTTP_FRONT_END_HTTPS

甚至连SERVER_PORT都不是443

该如何判断https呢?

阅读 7.1k
3 个回答

这些需要在nginx加header,php收到的都是上游过来的。nginx不给你,php拿不到这些东西

你的https是在php里实现的还是在nginx里实现的?

在nginx加一个配置proxy_set_header X-Forwarded-Proto $scheme;将前端使用的协议发到后端,你后端可以根据这个请求头判断了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题