欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 解决问题 PHP $_SERVER[‘HTTPS‘] 没有值

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

2025/11/1 18:22:27 来源:https://blog.csdn.net/sleepingboy888/article/details/145119664  浏览:    关键词:解决问题 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’]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词