我们的一位客户创建了一个二维码,其中 url 中包含一个空格。
我将如何编写处理此问题的 nginx 重定向?
在字符串中使用诸如“%20”之类的东西的几次尝试似乎会导致 nginx 出错或使 configtest 失败
准确地说,二维码是这样读的
http://www.google.com/somestuff/someotherstuf/pagewewant
我需要将它重定向到
http://www.google.com/somestuff/someotherstuf/pagewewant
(重写应该在 somestuff 之后不显示空格)
谢谢你的时间
最佳答案
问题已经两年多了,但也许它会让人头疼。
警告:我不是 nginx 专家。这只是我在找到这个悬而未决的问题后尝试过的事情之一,它碰巧奏效了。这可能不是做到这一点的最佳方式。我建议检查 nginx 文档,以防有人正在处理大量此类位置。
对于偶尔包含空格的重写,我将路径放在单引号中:
location '/level_one /landingpage.htm' {
rewrite ^ http://www.foo.bar/level_one/landingpage.htm permanent; }
如果由于某种原因您需要在目标中有空格,请将其放在单引号中:
location '/downloads/foo bar.pdf' {
rewrite ^ 'http://www.foo.bar/documents/foo bar.pdf' permanent; }
关于包含空格的 Nginx 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101690/