2017-08-03 108 views
1

如何通过nginx中的重写规则从URL http://myserver.com//data/app?foo1=bar1&foo2=bar2中删除多个斜杠?Nginx重写参数问题

我正在尝试重写正则表达式,但未能成功完成查询字符串,即在重定向中使用foo1和foo2参数。

+0

哪里''//来自何处? 'rewrite'指令在标准化的URI上运行,并且不会看到嵌入的''''或'?'或查询字符串。 –

+0

我们的客户之一正在发送此类请求。由于某些奇怪的原因,我们无法在客户端进行修复。所以我们试图在nginx端修复这个请求以开始工作。 JFYI,我们已经设置了merge_slashes关闭,并且我们通过重写url来手动标准化URL,因为nginx并没有以某种方式标准化URL(默认的merge_slashes on) – Reefaq

+0

值'$ uri'应该被标准化,但值'$ request_uri '不是。当人们使用'request_uri'(例如'proxy_pass')时,我遇到了一些问题,这会使规范化失败。 –

回答

1

你可以尝试下面的规则:

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

感谢萨加!这对我有用。 – Reefaq