2014-10-31 82 views
1

当我发送它们时,Nginx似乎是urldecode并匹配url。无论如何要阻止这一点?url中的nginx urldecoding斜杠

curl https://localhost/schedule/Joe+%2F+%26+Smith

越来越受

rewrite ^/schedule/([^/]+)/([^/]+)$ /a.php?first=$1&last=$2;

而不是

rewrite ^/schedule/([^/]+)$ /a.php?fullname=$1;

回答

1

你不能这样做,很容易匹配。

From location directive documentation :

抵抗归一化的URI进行匹配,在“%XX”的形式编码的文本进行解码之后,解析为相对路径组件“”的引用和“..”,并可能将两个或多个相邻斜杠压缩成一个斜线。现在

,您可以使用(很)实验perl module和编码$r->uri早在自定义处理程序。