301重定向到SSL导致证书警告

时间:2013-09-10 07:17:51

标签: php redirect ssl https

我正试图摆脱证书警告。我有以下代码在其他任何事情之前执行,并强制用户访问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();

}

这会重定向到正确的网址,但似乎会在其后面留下SSL警告:

enter image description here

在控制台中我得到了这个:

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

enter image description here

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

2 个答案:

答案 0 :(得分:1)

在发送301重定向之前建立SSL连接。由于浏览器无法信任重定向,因此会显示警告。

答案 1 :(得分:1)

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

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