2014-10-31 119 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早在自定義處理程序。