WDlinux官方论坛's Archiver

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的那一段里加上:[code]
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
proxy_set_header X-Forwarded-Proto https;
        }
        location ~ /\.ht {
                    deny  all;
            }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 internal;
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
proxy_set_header X-Forwarded-Proto https;
        }
[/code]PHP中使用$_SERVER['HTTP_X_FORWARDED_PROTO']判断就可以了。
注意几点:
1. 访问php文件和文件目录都要加。
2. 修改完,系统管理-服务重启-重启web服务。
3. 注意浏览器缓存。

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

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.