wordpress 反代访问时302重定向错误的修复

反代主机nginx设置

location ^~ /
{
    proxy_pass http://wordpresshost:8787;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    #proxy_redirect off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Port $http_port;
    proxy_set_header X-Forwarded-Proto $scheme;
}

在wordpress的 wp-config.php 中 $table_prefix = 'wp_'; 之后添加以下内容:

if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    //反代后出现跳端口的情况的处理
    if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
        $_SERVER['HTTPS'] = 'on';
    }
    $_SERVER['HTTP_HOST'] = $_SERVER["HTTP_X_FORWARDED_HOST"]; 
// 注意:NPM 或你的反向代理需要正确设置 X-Forwarded-Host
    $_SERVER['SERVER_PORT'] = $_SERVER["HTTP_X_FORWARDED_PORT"]; 
// 注意:NPM 或你的反向代理需要正确设置 X-Forwarded-Port
}

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注