PHP:HTTP还是HTTPS?

sac*_*and 43 php

如何判断是否通过http或https访问了php页面?

Era*_*rin 47

如果请求是使用HTTPS发送的,那么$ _SERVER超全局中将有一个额外的参数- $ _SERVER ['HTTPS'].您可以检查它是否已设置

if( isset($_SERVER['HTTPS'] ) ) {
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的问题在于它并不总是有效,因为`$ _SERVER`文档说:"这个数组中的条目是由Web服务器创建的.不能保证每个Web服务器都会提供这些条目;服务器可以省略一些,或提供其他未列出的内容." (2认同)

Ael*_*ios 38

如果您的请求是通过HTTPS发送的,那么您将拥有一个名为"HTTPS"的额外服务器变量

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { //HTTPS } 
Run Code Online (Sandbox Code Playgroud)

  • 在IIS中使用ISAPI时应该使用此答案. (2认同)

Mar*_*ens 20

$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http';

$protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';
Run Code Online (Sandbox Code Playgroud)

这些都应该有效