ПРОЕКТЫ 


  АРХИВ 


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: Отсутствие urlencode в резул ьтирующем url при rewrite



Hello Alexander,

Tuesday, December 29, 2009, 6:28:55 PM, you wrote:

> Все привет!

> Мы недавно перешли с лайти на nginx и вылезла интересная проблема с
> различным поведением при rewrite.

> Вот такое правило:

> rewrite ^/download/([^/]+)/(.+)/$
> /index.php/download/?hash=$1&filename=$2        last;

> работает как надо, но к аргументам  $1 и $2 не применяется urlencode, что
> приводит к проблемам в случае если в $2, например, есть апостроф "&". В
> итоге query_string получается битая (имя файла обрывается и появляется еще
> одна переменная). Как можно обойти эту проблему и есть ли способ делать
> url_encode для аргументов в результирующем url?

> ***
> Саша Радостин

1) Народ, а зачем вам вообще rewrite'ы?

location ~ ^/download/(?<hash>[^/]+)/(?<filename>.+)/$ {

    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    fastcgi_param SCRIPT_NAME     /index.php;
    fastcgi_param PATH_INFO       /download/;
    fastcgi_param QUERY_STRING    hash=$hash&filename=$filename;
    fastcgi_pass  ...;
    include       fastcgi_params;
}

2) С какого nginx должен делать что-то с captures? Я бы с таким же
   успехом мог ругаться на nginx: "Почему nginx не далает md5() над
   переменными? А то я юзал до этого другую софтину, там это было
   зашито в код".

-- 
Best regards,
 Denis                            mailto:denis@xxxxxxxxxx


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.