解决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'];
相关推荐
vortex59 分钟前
Kali Linux 磁盘扩容后内部分配完整教程
linux·运维
想唱rap17 分钟前
应用层协议与序列化
linux·运维·服务器·网络·数据结构·c++·算法
开开心心_Every22 分钟前
轻量级PDF阅读器,仅几M大小打开秒开
linux·运维·服务器·安全·macos·pdf·phpstorm
云达闲人27 分钟前
搭建DevOps企业级仿真实验环境:006Proxmox 基础环境验证
运维·devops·proxmox ve·sre·仿真实验环境·快照与克隆·运维实操教程
the_fat_bird39 分钟前
ubuntu install nvidia gpu driver
linux·运维·ubuntu
江南风月1 小时前
WGCLOUD如果使用SQL Server数据库推荐哪个版本
运维·网络·zabbix·运维开发·prometheus
IMPYLH1 小时前
Linux 的 tac 命令
linux·运维·服务器·bash
计算机安禾1 小时前
【Linux从入门到精通】第50篇:专栏总结与Linux学习之路的未来展望
linux·运维·学习
yyuuuzz1 小时前
企业出海技术落地的几个常见问题
运维
byoass1 小时前
企业云盘高可用架构:主备切换、负载均衡与健康检查实战
运维·网络·安全·架构·云计算·负载均衡