Nginx:proxy“内部位置中不能有URI部分”;如果;陈述

Nginx:proxy“内部位置中不能有URI部分”;如果;陈述,nginx,Nginx,假设有一个nginx配置: server { ... location /nakayoshi { if ($georedirect) { proxy_pass http://foo.bar/fa/fb/fc; } proxy_pass http://foo.bar/fa/fb/fd; } } 当Isudo nginx-t时,它会打印出: nginx: [emerg] "proxy_pass" can

假设有一个nginx配置:

server {
    ...
    location /nakayoshi {
        if ($georedirect) {
            proxy_pass http://foo.bar/fa/fb/fc;
        }
        proxy_pass http://foo.bar/fa/fb/fd;
    }
}
当I
sudo nginx-t
时,它会打印出:

nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular express, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/conf.d/nakayoshi.conf
我还发现
rewrite
在这里帮助我,但是重定向的uri将更改为类似“”的URL


我可以使用
proxy\u pass
保持重定向的URI不变吗?

试试这样的方法

http {
    ...
    map $georedirect $proxyuri {
        "" fa/fb/fd;
        default fa/fb/fc;
    }
    server {
        ...
        location /nakayoshi {
            proxy_pass http://foo.bar/$proxyuri;
        }
    }
}