Nginx重写参数问题

Nginx重写参数问题,nginx,nginx-location,Nginx,Nginx Location,如何通过nginx中的重写规则从URL中删除多斜杠 我正在尝试使用rewrite regex,但使用完整的查询字符串(即重定向中的foo1和foo2参数)无法成功执行此操作。您可以尝试以下规则: rewrite ^\/\/data/app/(.*) /data/app/$1 last; /从哪里来?rewrite指令在规范化URI上运行,不会看到嵌入的/或?或查询字符串。我们的一个客户端正在发送此类请求。由于一些奇怪的原因,我们无法在客户端进行修复。因此,我们正在尝试在nginx端修复它,

如何通过nginx中的重写规则从URL中删除多斜杠


我正在尝试使用rewrite regex,但使用完整的查询字符串(即重定向中的foo1和foo2参数)无法成功执行此操作。

您可以尝试以下规则:

rewrite ^\/\/data/app/(.*)  /data/app/$1  last;

/
从哪里来?
rewrite
指令在规范化URI上运行,不会看到嵌入的
/
或查询字符串。我们的一个客户端正在发送此类请求。由于一些奇怪的原因,我们无法在客户端进行修复。因此,我们正在尝试在nginx端修复它,以确保请求应该开始工作。JFYI,我们已经关闭了合并斜杠,我们正在通过重写url手动规范化url,因为nginx没有以某种方式规范化url(默认合并斜杠打开)。值
$uri
应该规范化,但值
$request\u uri
没有。我发现人们在使用
$request\u uri
(例如在
proxy\u pass
中)时会遇到问题,这会破坏规范化。