Board logo

标题: [求助] 如何在PHP中判断当前请求是否HTTPS? [打印本页]

作者: slowhand    时间: 2017-9-6 17:53     标题: 如何在PHP中判断当前请求是否HTTPS?

使用的版本的3.2.12,N+A的方式。
设置https和http访问都可用,如何在php中判断当前请求是否https?
使用$_SERVER["HTTPS"]都返回空;使用$_SERVER["REQUEST_SCHEME"]都返回http。
期间也查了些资料,如 http://blog.csdn.net/gdali/article/details/72817265 上面说的修改设置,改了没有效果。

请问,如何才能在php中判断当前请求是否https?
如果有相关的参考资料,请发个链接。
作者: dnf008    时间: 2017-9-8 11:24

NGINX站点conf配置文件 修改后 需要点其他站编辑然后保存  不然配置文件不生效
为这个问题我搞乐两天才发现 修改后需要想办法让他重新加载才行
作者: slowhand    时间: 2017-9-8 17:26

感谢楼上帮助!
这几天手动配置了二级域名的HTTPS。二级域名的conf文件修改后,系统管理-服务重启-重启web服务后有效。
但是一直没有实现在PHP中判断HTTPS。不知道是我对相关的配置项理解不对,还是写法不对,改了后配置再重启web'服务,还是没有效果。
作者: slowhand    时间: 2017-9-8 18:06

问题解决了。
NGINX站点conf配置文件中,在443的那一段里加上:
  1.         location ~ \.php$ {
  2.                 proxy_pass http://127.0.0.1:88;
  3.                 include naproxy.conf;
  4. proxy_set_header X-Forwarded-Proto https;
  5.         }
  6.         location ~ /\.ht {
  7.                     deny  all;
  8.             }
  9.         location / {
  10.                 try_files $uri @apache;
  11.         }
  12.         location @apache {
  13.                  internal;
  14.                  proxy_pass http://127.0.0.1:88;
  15.                  include naproxy.conf;
  16. proxy_set_header X-Forwarded-Proto https;
  17.         }
复制代码
PHP中使用$_SERVER['HTTP_X_FORWARDED_PROTO']判断就可以了。
注意几点:
1. 访问php文件和文件目录都要加。
2. 修改完,系统管理-服务重启-重启web服务。
3. 注意浏览器缓存。

另,怎么把标题改为已解决?帖子无法再次编辑。




欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) Powered by Discuz! 7.2