我正试图摆脱证书警告。我有以下代码在其他任何事情之前执行,并强制用户访问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警告:
在控制台中我得到了这个:
(https://mysite.com/special-offer/处的页面显示http://mysite.com/special-offer/的不安全内容。)
但是,如果我直接访问url($ redirect),则不会给出SSL警告。所有资源都通过https提供。
答案 0 :(得分:1)
在发送301重定向之前建立SSL连接。由于浏览器无法信任重定向,因此会显示警告。
答案 1 :(得分:1)
这与PHP或重定向无关。您的网页引用了http资源。使用HTTPS加载此页面时,会收到警告。
解决方案:查看您的网页并将URL更改为“//www.domainname.com”(即没有协议说明符)或更改为适当的HTTPS地址(某些服务器具有不同的路径,可通过HTTP和via访问HTTPS)。