WordPress网站部署SSL证书无效的解决办法

WordPress网站在部署SSL证书之后,很多图片的URL还是显示http而不是https,导致SSL证书部署无效。为了解决这个问题,我们有两种方法:一个是治标不治本的办法,就是在主题的 functions.php 文件中加入字符替换语句,这样读者在每次访问的时候会相应的把图片的 http 链接替换为 https,而数据库的原始内容不变;另一个彻底根治的办法是,直接进入数据库用SQL 语句把 HTTP 直接替换为 HTTPS。下面就这两个方法本文做简单介绍。

1.通过主题的function.php文件来批量替换

在主题文件的function.php(WP后台“外观”-“编辑”右侧可以找到)里加入如下代码(注意域名需要做相应修改)

function replacehttp($content){
if( is_ssl() ){
$content = str_replace(‘http://www.域名.com/wp-content/uploads’, ‘https://www.域名.com/wp-content/uploads’, $content);
}
return $content;
}
add_filter(‘the_content’, ‘replacehttp’);

2.通过SQL语句进行正文的批量替换

操作前请务必对数据库进行备份,以避免不可挽回的数据丢失!

登入MySQL或MariaDB

a.切换到WP数据库,不确定的话可以用“show databases;”命令查看当前有哪些数据库

b.运行如下语句批量替换(域名及路径替换成自己的,前面的路径不带s,因为张承辉博客也执行了此sql命令导致http被自动替换成https)

UPDATE wp_posts SET post_content = replace(post_content, ‘https://www.zhangchenghui.com/wp-content/uploads’,’https://www.zhangchenghui.com/wp-content/uploads’);

WordPress网站部署SSL证书无效的解决办法

运行只要没有报错就可以查看效果了,注意:以上两者选择其中一个就可以,如果你不熟悉SQL操作就选1,但由于每次页面访问都要运行函数(已做静态缓存除外),因此会有一定性能损失;如果对SQL比较熟悉,就可以用2,一劳永逸。

如若转载,请注明出处:https://www.zhangchenghui.com/250.html