无法判断是否 https 请求

http 网站升级 https 
在 https 状态下打印 $_SERVER
  ["REQUEST_SCHEME"] => string(4) "http"
  ["SERVER_PROTOCOL"] => string(8) "HTTP/1.0"

等信息全是http,这是什么原因??

 

https://img.mukewang.com/5c8f5c850001229b08000454.jpg

先谢谢大家回答,我的 $_server 全部都没有标识https;附上我的nginx 配置

server {
        listen       80;
        root /www;
        server_name xx.com;
        rewrite ^(.*)$  https://$host$1 permanent;
        index  index.html index.php index.htm;
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 internal;
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
        }
}

server {
        listen       443;
        root /www;
        ssl                  on;
        ssl_certificate      cert/xx.com.crt;
        ssl_certificate_key  cert/xx.com.key;
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        server_name xx.com;
        index  index.html index.php index.htm;
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 internal;
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
        }
}

MMTTMM
浏览 654回答 6
6回答

jeck猫

$_SERVER['HTTPS'] $_SERVER['SERVER_PORT'] == 443

暮色呼如

nginx fastcgi参数设置了吗

人到中年有点甜

你访问的这个地址,到达的第一个 WEB 服务器(处理了你这个 HTTPS 的请求的那个),与你在页面中看到的那个 php 服务器,又不一定是同一个东西。

RISEBY

$_SERVER ['HTTP_X_FORWARDED_PROTO']

米脂

isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == "on")找找这2个有吗,我用这2个判断的,ok的
打开App,查看更多内容
随时随地看视频慕课网APP