解决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 小时前
vivo Pulsar 万亿级消息处理实践()-Ansible运维部署
运维·ansible
XR1234567882 小时前
企业全光网络架构选型技术白皮书:从物理层到运维层的全链路分析
运维·网络·架构
似的8352 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
HiDev_2 小时前
【非标自动化】2、认识元器件(直线模组)
运维·自动化
龙仔7253 小时前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
我不管我就要叫小猪3 小时前
嵌入式Linux----网络通信
linux·运维·服务器
江湖有缘4 小时前
Docker实战 :使用Docker部署OneTerm堡垒机
运维·docker·容器
姜太小白4 小时前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
fengyehongWorld5 小时前
Linux 终端快捷键
linux·运维
看昭奚恤哭5 小时前
平滑加权轮询负载均衡的底层逻辑
运维·负载均衡