代码之家  ›  专栏  ›  技术社区  ›  Brian

nginx重定向POST请求

  •  1
  • Brian  · 技术社区  · 6 年前

    我有一个web服务器,它接受 https://www.example.com/API/ooo/xxx https://www.example.com/API/aaa/bbb https://www.example.com/API/xxx/yyy ... 等

    现在我们想将上述任务重定向到 https://www.example.com/ooo/xxx https://www.example.com/aaa/bbb https://www.example.com/xxx/yyy ... 等

    rewrite nginx中的关键字:

    location /API/ {
        rewrite ^/API(.*)$ https://$host$1 redirect;
    }
    

    这适用于GET请求。但它将POST请求转换为获取请求。这是我不想要的。

    /API/* /* ?

    post 307 重写 似乎不支持 307 重新使用我不知道怎么用 $1 中的正则表达式属性 return .

    1 回复  |  直到 6 年前
        1
  •  2
  •   Richard Smith    6 年前

    使用 return 陈述可以使用正则表达式 location 块捕获要返回的URI部分。

    location ~ ^/API(/.*)$ {
        return 307 $1$is_args$args;
    }
    

    注意,使用正则表达式 地方 指令,其在配置中的顺序非常重要,因此您可能需要移动它。看见 this document 详情请参阅。