nginx重定向POST请求

nginx重定向POST请求,nginx,Nginx,我有一个接受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。。。等等 我已经尝试在nginx中使用re

我有一个接受
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
。。。等等

我已经尝试在nginx中使用
rewrite
关键字:

location /API/ {
    rewrite ^/API(.*)$ https://$host$1 redirect;
}
这适用于GET请求。但它将POST请求转换为获取请求。这是我不想要的

如何在将
/API/*
重定向到
/*
时保留http方法


这表示我可以使用
307
重定向。但是
rewrite
似乎不支持
307
重定向。我不知道如何在
return
中使用
return
语句中的
$1
正则表达式属性。您可以使用正则表达式
location
块捕获要返回的URI部分

例如:

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

请注意,对于正则表达式
location
指令,其在配置中的顺序非常重要,因此可能需要移动它。有关详细信息,请参阅

谢谢你的帮助。但是
返回307$1$is_args$args重定向帖子
https://www.example.com/API/ooo/xxx
发布
http://www.example.com/ooo/xxx
。是否可以保留
https
协议?我已尝试
返回307 https://$1$Is_args$args。但这不起作用。它重定向POST
https://www.example.com/API/ooo/xxx
发布
https:///ooo/xxx
。抱歉,我忘了提到我在客户端和nginx之间有一个AWS应用程序负载平衡器。负载平衡器接收https请求并向nginx发送http请求。这就是为什么我需要添加
https
协议。