Php-https请求页面


Php https request for a page

我试图使用以下代码:

if($_SERVER['HTTP_PORT'] !== 443 && !isset($_SERVER['HTTPS'])) {
  header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
  exit;
}

使我的登录页面和注册页面包含https以使用ssl来确保一切安全,但当我运行页面时,会显示一条错误消息使用$_SERVER['https']的未定义索引错误

所以我决定使用另一个:

if ( isset( $_SERVER["HTTPS"] ) && strtolower( $_SERVER["HTTPS"] ) == "on" ) {
  $pageURL .= "s";
}

但没有奏效。https没有出现,http只在那里。。。

任何关于如何使用php实现这一点的想法。。。

感谢

解决方案是:

if($_SERVER["HTTPS"] != "on")

{ header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); exit(); }

来自手册:

$_SERVER['HTTPS']
 如果通过HTTPS协议查询脚本,则设置为非空值

因此,您应该使用以下条件来检查HTTPS连接:

if(!empty($_SERVER['HTTPS']))
{
    // https://...
}

您最好使用$_SERVER['SERVER_PORT']。HTTP_PORT并不总是返回端口号。