Re: rewrite со слешом

Sergey Shepelev temotor at gmail.com
Tue Aug 4 23:17:01 MSD 2009


RFC2616
5.1.2 Request-URI
...
The Request-URI is transmitted in the format specified in section
   3.2.1. If the Request-URI is encoded using the "% HEX HEX" encoding
   [42], the origin server MUST decode the Request-URI in order to
   properly interpret the request. Servers SHOULD respond to invalid
   Request-URIs with an appropriate status code.
...

Здесь написано, что nginx обязан развернуть все %hex hex в запросе.

Таким образом, ваш запрос эквивалентен такому:

GET /1/2 HTTP/1.0

Ну, и реврайт отработал нормально. ^(/1.*[^a])$ матчит весь URI /1/2 и
добавляет .a.

2009/8/4 Dmitriy MiksIr <miksir at maker.ru>:
> Если в выделении есть заенкоденный слеш - он разворачивается. В итоге это
> приводит к таким вот результатам:
> rewrite ^(/1.*[^a])$ $1.a redirect;
>
> GET /1%2F2 HTTP/1.0
>
> HTTP/1.1 302 Moved Temporarily
> Server: nginx/0.7.55
> Location: http://st.miksir.test.autocom/1/2.a
>
>
>


More information about the nginx-ru mailing list