Nginx在匹配之前是否会引用/ unescape URL字符?

当我想匹配一个带有空格的URL时,空格可能被编码为%20+ 。 为了在Nginx的正则expression式中匹配,我需要使用哪种模式?

Nginx是否按原样传递URL?

(?:%20|\+| )

或者,Nginx是否首先做了一些不引用或者回避的操作?

(?:\+| )

或是+正常化?

Solutions Collecting From Web of "Nginx在匹配之前是否会引用/ unescape URL字符?"

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

例如。 /route/the%20test

应该与(?:\s)匹配

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