在网上看了很多判断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呢?
在网上看了很多判断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呢?
在nginx加一个配置proxy_set_header X-Forwarded-Proto $scheme;
将前端使用的协议发到后端,你后端可以根据这个请求头判断了。
15 回答8.4k 阅读
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
这些需要在nginx加header,php收到的都是上游过来的。nginx不给你,php拿不到这些东西