rewrite со слешом

Igor Sysoev is at rambler-co.ru
Wed Aug 5 18:07:37 MSD 2009


On Wed, Aug 05, 2009 at 05:58:33PM +0400, Dmitriy MiksIr wrote:

> Такое ощущение сложилось после изучения rfc 2396.
> В частности / - резервированный символ как сепаратор, а %2F - 
> заэскейпенный / именно для того, что бы рассматривать его как данные 
> внутри сегмента пути. В данном случае же происходит изменение семантики URI.
> Вот, еще
> 2.4.2. When to Escape and Unescape
> Конец первого абзаца
> Likewise, a URI must be separated into its components before the escaped 
> characters within those components can be safely decoded.

Ну а как /1%2F2 должно отображаться на файловую систему - как /1/2
или как /1%2F2 ? И как в таком случае быть с /1%202 ?

> Igor Sysoev пишет:
> >On Tue, Aug 04, 2009 at 09:21:07PM +0400, Dmitriy MiksIr wrote:
> >
> >>Если в выделении есть заенкоденный слеш - он разворачивается. В итоге 
> >>это приводит к таким вот результатам:
> >>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
> >
> >А почему должно быть иначе ?


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list