ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Различать %2F и / в правилах rewrite



Hello!

On Sun, Mar 08, 2009 at 11:58:41AM +0200, Roman Odaisky wrote:

> Добрый день!
> 
> Обнаружилось, что правило
> 
>     rewrite ^/некий/путь/([^/]+)/[^/]+\.([^/.]+)$ /другой/путь/$1.$2;
> 
> не срабатывает на URL наподобие
> 
>     /некий/путь/42/Схема%20стека%20TCP%2FIP.png
> 
> потому что %2F и / считаются одним и тем же. Как можно повлиять на это 
> поведение?

Это поведение - оно в соответствии с RFC 2616, 3.2.3 URI 
Comparison.

Если хочется нестандартного поведения - используйте

    if ($request_uri ~ ...) {
        set  $a1  $1;
        set  $a2  $2;
        rewrite  ^  /другой/путь/$a1.$a2;
    }  

Только потом не говорите что вас не предупреждали.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.