开发者 · 2021年 4月 25日

WordPress启用SSL后的问题

注意:我的服务器配置是docker上的nginx 和 docker 上的wordpress,所以其他情况不一定适用。

我的域名是在阿里云注册的,直接使用阿里云提供的免费的ssl证书,按照手册生成证书,上传到服务器,修改nginx的配置文件。注意,nginx如果没有预留443端口,可能需要rm掉重新添加个容器。

重启ngxin后发现只有首页启用了https并且主题都没了,而且不是全站https。网上找了一些教程改来改去,一会儿too many redirects,一会儿502/404/500错误。

经过半天测试发现两个关键的修改点(不要修改.htaccess文件):


1. nginx的配置文件中的 listen 80那个server 修改为:

server {
     listen 80;
     server_name domain2.com www.domain2.com;
     return 301 https://$server_name$request_uri;
 }

2. 在wp-config.php的行首添加如下四行,其他任何多余的都不要改了:

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