前言:
最近在阿里云的云盾证书服务管理控制台申请单域名免费证书,进行个人网站https测试,折腾了一下。当网站配置SSL证书开启https后,很多都会遇到这些问题:网站css样式错乱,图片地址显示错误,网站后台进不去或登录无反应。
解决方案:
一、修改代码
1、打开网站根目录文件\wp-includes\functions.php
,找到代码 require( ABSPATH . WPINC . '/option.php' );
大概在第8行。
在下方添加以下代码:
add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }
2、打开网站根目录\wp-config.php文件找到代码
在下方添加如下代码:
*
* @package WordPress
*/
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
完成以上两步操作后,可以正常访问wordpress https
开头网站后台了,登录wordpress后台。
二、后台修改
点击设置-常规-常规
选项,将
- WordPress地址(URL)
- 站点地址(URL)
改为https://开头的链接地址(如https://www.pengjy.com),后点击“保存更改”。
然后还需要确定的就是通过“设置”中“多媒体”菜单把“文件的完整 URL 地址”也改为 https 协议,如果文件的完整 URL 地址之前是缺省的,那么也就可以不用修改。
这时https网址小锁上有个黄色小叹号(此内面部分内容不安全、如图像)https证书存在错误,可能网站文章内容页的图片链接地址还是http://开头,也有可能是外部链接没https化。
三、修改数据库
update wp_posts set post_content = replace(post_content, 'http://example.com','https://example.com');