当前位置:论坛首页 > Linux面板 > 讨论

php $_SERVER['REQUEST_SCHEME'] 获取不到值

发表在 Linux面板2017-11-10 13:38 [复制链接] 2 2880

今天在部署一套php开源系统,发现生成的 url 少了 http 所以跟了一遍代码发现 $_SERVER 中既然没有REQUEST_SCHEME字段,

后来尝试在 nginx 配置文件中加入以下代码无效
  1. proxy_set_header X-Forwarded-Proto  $scheme;  
复制代码


无奈只能通过修改程序解决
  1. if ( (! empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (! empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') ) {
  2.     $_SERVER['REQUEST_SCHEME'] = 'https';
  3. } else {
  4.     $_SERVER['REQUEST_SCHEME'] = 'http';
  5. }
复制代码

解决了之后查到还有这个方法,不过没有尝试,如果遇到同样问题的同学可以尝试下

  1. fastcgi_param REQUEST_SCHEME $scheme.
复制代码

虽然改程序能解决,但一些开源程序还是挺头疼的,个人建议希望官方能默认支持我的环境
centos7.4 + bt5.3.0 + Nginx -Tengine2.2
使用道具 举报 只看该作者 回复
发表于 2019-11-29 00:51:10 | 显示全部楼层
云锁的问题,我排查是云锁的web防护
使用道具 举报 回复 支持 反对
发表于 2019-11-29 09:38:58 | 显示全部楼层
有安装防护软件吗?
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表