解决WordPress在反向代理后面不自动https的问题


发布于

|

分类

搞Docker时候遇到各种奇葩问题。

WordPress官方默认Docker是基于Apache来做的,但为了自动加上SSL,我用了一个Nginx容器来做反向代理。于是问题出现了:用HTTPS访问Nginx,生成出来的网页里面所有生成的URL都是HTTP,而不是HTTPS。

解决办法:在wp-config.php里面加上这样几句话:

if((!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) { 
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; 
    $_SERVER['HTTPS'] = 'on'; 
}

就是说,如果发现我们用HTTPS访问反向代理,那么给全局变量里面增加一个HTTPS的Flag。

所以说呢,直接跑FPM的Docker,加上Nginx反代就好了嘛……Apache的Docker会麻烦一些。


评论

发表回复

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