1

我正在尝试摆脱证书警告。我有以下代码在执行其他任何操作之前执行,并强制用户使用 URL 的 https 版本:

if((!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "") && ($_SERVER['REMOTE_ADDR'] != '127.0.0.1')){
$redirect = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header("Location: $redirect");
exit();

}

这会重定向到正确的 URL,但它似乎会留下 SSL 警告:

在此处输入图像描述

在控制台中我得到这个:

https://mysite.com/special-offer/上的页面显示来自http://mysite.com/special-offer/的不安全内容。)

在此处输入图像描述

但是,如果我直接访问 url ($redirect),则不会给出 SSL 警告。所有资源都通过 https 提供。

4

2 回答 2

1

SSL 连接在您发送 301 重定向之前建立。因为浏览器不能信任重定向,所以会显示警告。

于 2013-09-10T07:34:57.593 回答
1

这与 PHP 或重定向无关。您的网页引用了 http 资源。当使用 HTTPS 加载此页面时,您会收到警告。

解决方案:查看您的网页并将 URL 更改为“//www.domainname.com”(即没有协议说明符)或适当的 HTTPS 地址(如果适用)(某些服务器具有通过 HTTP 和 HTTPS 访问的资源的不同路径)。

于 2013-09-10T14:26:08.983 回答