Nginx在匹配之前是否取消引用/取消网址字符?

时间:2013-01-02 18:18:29

标签: regex nginx

当我想匹配其中包含空格的网址时,空格可能会被编码为%20+。为了在Nginx正则表达式中匹配这个,我需要使用什么模式?

Nginx是否按原样传递了URL?

(?:%20|\+| )

或者,Nginx会先做一些不引用或不进行的操作吗?

(?:\+| )

+是否已正常化?

1 个答案:

答案 0 :(得分:1)

虽然我在Nginx文档中没有找到任何引用,但是在我的测试中,Nginx将HTTP代码规范化为unicode,使'%20'与'\ s'匹配。 '+'已经是unicode,不需要标准化。

EG。 /route/the%20test

应与(?:\s)

匹配

但是,我倾向于依靠更安全的方面并使用类似:(?:(\s|\%20))

的东西