当前位置: 首页 > article >正文

解决问题 PHP $_SERVER[‘HTTPS‘] 没有值

遇到的问题:
最近重新安装了nginx+php,目前http和https都支持,编写代码判断是否是https请求:

function IsHttpsRequest() {
   if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
       return TRUE;
   } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https') {
       return TRUE;
   } elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
       return TRUE;
   }
   return FALSE;
}

一般判断 $_SERVER[‘HTTPS’] 值就可以了,调试代码的时候发现没有这个值。

解决方法:
网上找到的解决办法记录下。
需要在nginx配置文件中加入:

fastcgi_param HTTPS $https if_not_empty;

刚开始看到 fastcgi_param 的时候,感觉优点眼熟,后来发现nginx和php请求相关的默认配置有包含文件:

location ~ \.php$ {
...
include fastcig.conf;
...
}

文件 fastcig.conf 中定义了很多 fastcgi_param ,可以把 fastcgi_param HTTPS $https if_not_empty; 添加到文件 fastcig.conf 中,刷新nginx配置,再调试php代码就能读取到 $_SERVER[‘HTTPS’]


http://www.kler.cn/a/504006.html

相关文章:

  • mapbox进阶,添加绘图控件
  • WeakAuras NES Script(lua)
  • MATLAB学习笔记目录
  • 51单片机入门基础
  • LeetCode-493. Reverse Pairs
  • <论文>时序大模型如何应用于金融领域?
  • WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞
  • 【Java设计模式-4】策略模式,消灭if/else迷宫的利器
  • zabbix2.0
  • 22、PyTorch nn.Conv2d卷积网络使用教程
  • 在Spring中如何发布一个事件?
  • 懒汉式单例模式
  • 当当网热销书籍数据采集与可视化分析
  • 松散比较(PHP)(小迪网络安全笔记~
  • MySQL数据库(SQL分类)
  • WSL报错libcudnn_cnn_infer.so.8
  • 基于Hiperwalk的量子行走Python编程
  • 基于celery的任务管理,本文主要是处理自己的算法,暴露API,管理任务并发,多线程
  • LeetCode 2657. Find the Prefix Common Array of Two Arrays
  • SCDN跟高防IP相比哪个更好
  • 计算机视觉算法实战——实时车辆检测和分类(主页有相关源码)
  • 大语言模型训练的基本步骤解析
  • llama.cpp 模型可视化工具 GGUF Visualizer
  • 提高互联网Web安全性:避免越权漏洞的技术方案
  • 在Visual Studio中编译.c文件和.cpp文件主要有哪些不同
  • 第三篇 Avaya IP Office的架构及其服务组成