重写反向代理的URL

时间:2014-02-23 02:35:01

标签: regex nginx rewrite reverse-proxy

这类似于nginx url rewrite for reverse proxy,但我不知道应该如何将这个答案应用于我的情况。

我正在尝试重写反向代理的URL,以便当Nginx向上游服务器发出请求时/pathA/something变为/pathB/something

location ~ /pathA(/|$) {
    proxy_pass http://www.example.com;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;

    rewrite ^/pathA(.*) /pathB$1;
}

我尝试了这个,但是我得到了一个N​​ginx 404页面(不是 example.com 404页面)。

1 个答案:

答案 0 :(得分:0)

我需要添加重定向(302)或永久(301):

location ~ /pathA(/|$) {
    proxy_pass http://www.example.com;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;

    rewrite ^/pathA(.*) /pathB$1 permanent;
}