注:本文参考:https://www.bilibili.com/opus/1067196714749788161
1:使用场景,
A服务器nginx, https://www.luckydog.cc
反向代理到
B服务器 https://www.example.com
两台服务器都是用https,443端口,其中B服务器安装wordpress,后台设置wordpress 的siteurl,home 都为:https://www.luckydog.cc
2:出现问题
wordpress管理后台,无限重定向,正确管理用户名和密码无法进入后台
3:解决方案
打开B服务器中wordpress根目录 wp-config.php,在代码尾部添加以下代码
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
$_SERVER['HTTP_HOST'] = $_SERVER["HTTP_X_FORWARDED_HOST"]; // 注意:反向代理需要正确设置 X-Forwarded-Host
$_SERVER['SERVER_PORT'] = $_SERVER["HTTP_X_FORWARDED_PORT"]; // 注意:反向代理需要正确设置 X-Forwarded-Port
}
或者修正方案:wp-config.php代码:
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
上方加入:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

发表回复