很多朋友在为WordPress网站部署HTTPS之后,会遇到诸如网站打不开,HTTP网站不跳转到HTTPS,网站乱码,网站不加载CSS和JS等问题。在做buddhalikedoge.com这个网站的时候我也遇到了,经过一番折腾,总算是找到了一些解决办法。

现在很多虚拟主机服务商都会在后台控制面板提供SSL服务,比起自己去改代码实在是方便太多,对于不懂代码的人来说简直就是福利。但是并不是只要向后台提供对应SSL证书内容,就可以成功部署HTTPS,你有很大的几率看不到那个小绿锁。

经过折腾,我找到了一些解决办法,不一定完全适用每一个人,但希望可以给大家一点帮助。

1、首先,当然是进入主机服务商页面找到SSL部署入口,申请SSL我就不讲了,网上有很多教程,不会的问问度娘就会了。

部署ssl后台图标

2、找到类似上图提示的图标,点进去就可以填写域名加密证书内容,有的可能是需要复制证书内容(如下图),直接用记事本打开复制就可以;有的是直接上传证书,这个按要求传就行。不同的服务商要求可能不同。

复制ssl证书内容

我这个是已经部署成功了,首次部署填写窗口都是一样的,要更新证书也是直接按要求输入内容就可以。注意证书内容不要复制错了。

3、在后台部署成功之后,正常情况下,应该是部署完成了,但是很多WordPress依旧是没办法正常显示HTTPS地址的。绝大部分都会遇到网站CSS和JS加载不出来或打不开、网站乱码、没有绿锁标识的情况,查看源代码,所有的链接全部都是http状态,这是因为我们的主题/插件使用绝对地址调用了http请求,这时候,如果没有进入服务器权限,请联系你的服务器厂商客服让他们将所有http请求修改为https。

如果你有权限进入服务器,那就可以自己改:

找到网站根目录文件 .htaccess(没有就新建一个) ,编辑.htaccess文件写入以下规则(复制下面的代码到文件中,注意修改自己的域名)  :

RewriteEngine On
RewriteCond %{HTTP:From-Https} !^on$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?buddhalikedoge.com$ [NC] # 将buddhalikedoge.com和www.buddhalikedoge.com跳转到https://www.buddhalikedoge.com,防止apache子站继承上级目录.htaccess受影响,部署时将buddhalikedoge.com替换为自己的网站
RewriteRule ^(.*)$ https://www.buddhalikedoge.com/$1 [R=301,L]

4、修改完之后,如果你的网站还是有问题,那么请继续下面的步骤。

修改WordPress后台设置

修改https地址

5、最后找到在ftp中找到:/wp-includes/load.php这个文件,可以搜索is_ssl找到对应的函数,将return false修改为return true,修改文件前请注意备份。

修改wordpress函数

改完之后,恭喜你,WordPress网站可以正常加载,小绿锁清晰可见。