网站启用HTTPS协议后通过相对协议解决混合内容

原创 server  2019-12-12 13:40  阅读 1,503 次

当网站启用https协议后,在打开SSL加密的网站( https:// )中调用非加密内容( http:// )文件时,浏览器会报不安全,提示有混合内容,不同的浏览器对混合内容的处理方式不一样,IE底部会弹出确认框,Chrome直接在浏览器栏提示不安全,严重影响用户体验。其实解决这个问题的方法很简单,就是通过相对协议。

相对协议示例

<img src="//www.91hosts.com/images/logo.png" />

简而言之,就是将URL的协议( http 、 https )去掉,只保留 // 及后面的内容。

这样子有什么好处呢?

可以自动匹配网站主协议,假设用https打开网站,那么静态资源等内容自动用https协议加载,同样的,用http打开网站,那么静态资源等内容会自动用http协议加载。

相对协议同样适用于CSS:

.logo { background: url(//www.91hosts.com/images/logo.gif); }

注意: 或 @import 引入样式表时使用相对协议,IE7、IE8会下载文件两次

SSL证书没有绿锁您与此网站建立的连接并非完全安全解决办法

为什么我新建的网站配置好SSL后,网站https旁边提示不安全,没有小绿锁了?

不少国内空间的新手站长,当使用了SSL证书之后,发现浏览器有https效果了,但是没有绿锁,谷歌浏览器提示“您与此网站建立的连接并非完全安全解决”

不规范代码常见情况列举:

调用了http://的网站统计器,您可以去统计器网站下载https://的;

例如用了外部模板cdn,不是https://的;外部路径必须要https://才行。

自己网站建站时,很多图片,js都是写http://这样的绝对路径,改成相对即可。

如果您某些图片http://调用外面的,存到自己网站后,用相对路径即可解决;

本文地址:https://www.91hosts.com/technical-notes/328.html
关注我们:请关注一下我们的微信公众号:扫描二维码谷歌云GCP/亚马逊AWS/微软云AZURE/阿里云国际代理商-91hosts的公众号
版权声明:本文为原创文章,版权归 server 所有,欢迎分享本文,转载请保留出处!

评论已关闭!