给网站加SSL安全证书是提高访问安全性的必由之路,但是加了SSL之后发现WordPress的CSS无法加载。原因很简单,就是WordPress内调的函数可能使用了http开始的链接,解决办法一招搞定:
首先在后台的“设置”->“常规”处,把网站URL的http换成https(我没有验证这一步是否为必须),然后打开网站根目录下的 wp-config.php 文件,加入以下代码
1 2 3 |
$_SERVER[\'HTTPS\'] = \'on\'; define(\'FORCE_SSL_LOGIN\', true); define(\'FORCE_SSL_ADMIN\', true); |
举例:
我是这样就成功了。
网上还有其他办法,如果上述办法不行可以试试:
其他方法:更换js/css路径为相对路径
找到函数文件 function.php,添加以下内容
1 2 3 4 5 6 7 8 9 |
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文件实现。在该文件中添加以下语句:
1 2 3 |
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