给网站加SSL安全证书是提高访问安全性的必由之路,但是加了SSL之后发现WordPress的CSS无法加载。原因很简单,就是WordPress内调的函数可能使用了http开始的链接,解决办法一招搞定:

首先在后台的“设置”->“常规”处,把网站URL的http换成https(我没有验证这一步是否为必须),然后打开网站根目录下的 wp-config.php 文件,加入以下代码

$_SERVER[\'HTTPS\'] = \'on\';
define(\'FORCE_SSL_LOGIN\', true);
define(\'FORCE_SSL_ADMIN\', true);

举例:

建站:WordPress安装SSL证书后无法加载CSS的解决办法

我是这样就成功了。


网上还有其他办法,如果上述办法不行可以试试:

其他方法:更换js/css路径为相对路径

找到函数文件 function.php,添加以下内容

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);
}

备注:

强制把http转换为https,可以使用.htaccess文件实现。在该文件中添加以下语句:

RewriteCond %{HTTP:From-Https} !^on$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?abc.com$ [NC]                # abc是你的域名。目的是将abc.com和www.abc.com跳转到https://www.abc.com,防止apache子站继承上级目录.htaccess受影响
RewriteRule ^(.*)$ https://abc.com/$1 [R=301,L]

注意将abc.com换成自己的域名。


参考资料:

https://www.simcf.cc/88.html/
https://blog.csdn.net/qq_28629495/article/details/67639597
部署https(ssl)后设置301跳转将http跳转到https

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注