终于,可以写这篇文章了,因为目前本站已经用上了,这里给大家说下,在WordPress开启全站https都需要做哪些的步骤?
那么接下来大家就听我好好的讲讲喽。
1、申请SSL证书,这也是开启全站https必备的步骤,如果还不知道有哪些的SSL证书的话,可以看这篇文章《免费SSL证书都有哪些?我来推荐下。》。
2、这步要分两种情况:
①如果是虚拟空间/主机的,可以看这篇文章《给衡天主机的虚拟主机配置安装添加SSL证书教程来了。》
②如果是云主机/轻量服务器/服务器这类的,根据自己服务器所使用的Web服务器做不同的配置,比如 Nginx,Apache这些也是目前比较主流的Web服务器,我都写了相应的教程,大家可以看这两篇。《Apache配置SSL证书以及http(80)永久重定向跳转https(443)的方法》和《Nginx/Tengine配置SSL证书以及http(80)永久重定向跳转https(443)的方法》
3、修改WordPress相关的一些配置
①打开网站后台——设置——常规——WordPress地址(URL)和站点地址(URL)
关于WordPress地址(URL)和站点地址(URL)概念不太理解的朋友,可以看这篇文章《WordPress后台常规选项中的WordPress地址(URL)和站点地址(URL)有什么区别?》,这也是为后续开启全站SSL做好准备,因为开启SSL了,浏览器规定https的站点中是不能包含http的内容。
②替换文章内容中的旧的站点(http)为新的站点链接(https)这样才能实现全站SSL,原因同上,有两种方法。
法一:利用WordPress的自带的文章内容过滤钩子,将以下的代码复制到自己当前所使用的主题下面的function.php
文件?>
之前。
/** * 替换文章中的https和http为// */ function replace_url_http_and_https($content) { preg_match('/\/\/(.*)/', site_url(), $url); //匹配站点的域名 $pattern = "/http:\/\/{$url[1]}|https:\/\/{$url[1]}/"; return preg_replace($pattern, "//{$url[1]}", $content); } add_filter("the_content", "replace_url_http_and_https");
关于为什么替换成//,有兴趣的朋友,可以看这篇文章《在WordPress中使用//(缺省协议)代替http(s)://有什么好处?》。
法二:直接使用数据库SQL语句替换(如果使用你该方法,一定要注意提前备份和将下方中得以域名替换成自己的站点!!!)
update wp_posts set post_content = replace(post_content, 'http://自己的站点域名','https://自己的站点域名');
4、搜索引擎相关的,开启百度站长工具的HTTPS认证(其他的搜索引擎如有该功能,也记得开启),以免影响收录的情况。
其他注意事项
SSL证书,一般都是有时效性的,像本站用的七牛云是免费一年的,所以续费的话(还是免费),但是要记得提前,要不然会导致网站打不开哦。
开启全站的SSL后,还是要检查下站点的链接是否都是https,像一些插件生成出来的链接不是https,所以这块也是需要注意的。