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代码>。但这不起作用。它重定向POSThttps://www.example.com/API/ooo/xxx
发布https:///ooo/xxx
。抱歉,我忘了提到我在客户端和nginx之间有一个AWS应用程序负载平衡器。负载平衡器接收https请求并向nginx发送http请求。这就是为什么我需要添加https
协议。