未分类 · 2025年5月26日 0

WordPress位于代理后的问题及解决办法

将WordPress放在反代后面,例如,WAF,内网,或者少数不能直接使用443端口的情形。

通常会遇到资源不能加载、循环重定向的问题。

最简单的方法就是部署一个自签名证书甚至错误证书开启SSL,反代时忽略证书即可。如果不能监听443,也可以把端口改掉,反代到带端口的地址就行。

不过想到docker也是https但却可以正常反代。所以问题肯定还有直接反代http的解决办法。

通过对比,会发现docker版的wordpress的wp-config.php文件多了一些内容。

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}

PS:具体是什么代码我已经忘了,网上流传了好几种版本的代码。写这个的时候我是从我的设置文件里复制过来的。不一定会和docker的配置完全相同,但功能是可行的。