解决nginx代理配置下wordpress的 /wp-admin/返回 302 重定向到登录页问题

问题分析

  1. 访问 http://www.xx.com/wp-admin/触发 302 重定向

  2. 重定向目标:http://www.xx.com/wp-login.php?redirect_to=...

  3. 核心需求:通过 Nginx 代理使 WordPress 后台可正常访问

第一步:Nginx 配置

bash 复制代码
    #wordpress配置begin-----

    # 主代理配置(处理所有请求)
    location / {
        # 代理到实际的 WordPress 服务(替换为您的后端地址)
        proxy_pass http://0.0.0.0:8036;
        
        # 关键:修复重定向路径
        proxy_redirect http://www.xx.com/wp-login.php /wp-login.php;
        proxy_redirect http://www.xx.com/wp-admin /wp-admin;
        
        # 传递必要头信息(防止会话丢失)
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 处理Cookie路径问题
        proxy_cookie_path / "/; HttpOnly; Secure; SameSite=Lax";
        proxy_cookie_domain 0.0.0.0:8036 www.xx.com;
    }

    # 处理登录路径(关键!)
    location ^~ /wp-login.php {
        proxy_pass http://0.0.0.0:8036/wp-login.php;
        
        # 修复重定向循环问题
        proxy_redirect http://www.xx.com/wp-admin /wp-admin;
        proxy_redirect http://www.xx.com/wp-login.php /wp-login.php;
        
        # 增强安全性头
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    #wordpress配置end  -----

第二步:后端 WordPress 必备配置

在 WordPress 的 wp-config.php中添加:

php 复制代码
// 强制使用代理域名
define('WP_HOME', 'http://www.xx.com');
define('WP_SITEURL', 'http://www.xx.com');

// 信任代理头
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
    $_SERVER['HTTPS'] = 'on';
}
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'] ?? $_SERVER['HTTP_HOST'];
相关推荐
江华森1 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼1 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by209993 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina3 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼3 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
cq林志炫3 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
yyuuuzz4 小时前
云服务器安全组规则优先级的机制记录
运维·服务器·网络·安全·阿里云·aws
KaiwuDB4 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
知已难寻5 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
ai_xiaogui5 小时前
私有化部署大模型实战:PanelAI 一键搭建、Token 计费与多用户隔离
运维·私有化部署·大模型部署·大模型 token 计费·api key 统一管理·多用户实例隔离·应用市场一键部署