WordPress博客启用HTTPS后浏览器依旧提示不安全

前言

博主在整上免费的ssl后,网站就已经是https访问了,但是访问时依旧提示访问不安全。

访问时依旧提示不安全.png

 

这让博主很郁闷,访问不安全,可能会导致很多人怀疑网站有问题。

 

原因

带着这个问题,我研究了一下,后来发现网页内依然使用了http://协议的文件,比如图片、js、css等静态资源。

也就是说,虽然访问网站时是https,但是加载的某些资源依旧是http的,这就让浏览器疑惑了。

 

解决方案

简单粗暴型解决方案

编辑nginx配置文件,(这里以宝塔面板为例)在server中插入这一句代码

add_header Content-Security-Policy "upgrade-insecure-requests";

配置文件添加.png

 

这样做最省事,即使网页中存在http://资源,浏览器也会自动处理以https://形式加载。

 

稳定至上型解决方案

登录phpmyadmin,先备份数据库文件!先备份数据库文件!先备份数据库文件!!然后执行以下命令(使用时请按照自己数据库表名(wp_posts)和网站域名修改后再执行即可。)

update wp_posts set post_content = replace(post_content,'http://www.320nle.com','https://www.320nle.com');

 

也可以导出数据库文件 .sql (先备份一份放一边!) 然后清空数据库,使用代码编辑器(别用txt编辑器打开!)批量替换该文件中的http://你的域名 为https://你的域名,替换好之后再上传回去。

 

专治各种不服型解决方案

编辑当前主题下的 functions.php 文件,加入以下代码:

//WordPress SSL 证书变绿色 update
add_filter('get_header', 'fanly_ssl');
function fanly_ssl(){
if( is_ssl() ){
function fanly_ssl_main ($content){
$siteurl = get_option('siteurl');
$upload_dir = wp_upload_dir();
$content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);
$content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content);
return $content;
}
ob_start("fanly_ssl_main");
}
}

 

对于此方案我发现了一个重要BUG:它会把你网站所有指向http://的链接全部强制替换成https:// ,即使你的友链也不放过,请谨慎使用!

 

本文转载至:https://www.lajiboke.com/14.html

 

Hey,你好哇。影视剪辑 | AE | Pr | 电脑技术 | 摄影摄像 | 电影 | 电视剧 | 二次元

我们下次见

剪辑交流群:685624383

收集的所有资源均来自网络,仅供私下交流学习之用,任何涉及到商业目的的均不能使用,否则产生的一切后果由您自行承担,提供资源但是不对任何资源负法律责任,所有资源请在你下载后24小时删除。 如有侵权,联系 admin#mail.320nle.com
320印象 » WordPress博客启用HTTPS后浏览器依旧提示不安全

发表评论