rewrite аргументов

Andrew Kopeyko kaa at zvuki.ru
Tue Nov 17 16:47:12 MSK 2009


Vladimir Rusinov wrote:
> Приветвую!
> 
> Есть задача: переписывать uri вида 
> /image?blogId=55640&fileName=language_settings_1.jpg в 
> /blog_images/55640/language_settings_1.jpg
> 
> Сделал так:
> 
> if ($request_uri ~* "^/image\?blogId=(.+)\&fileName=(.+)$") {
>         rewrite ^.*$ /blog_images/$arg_blogId/$arg_fileName break;
> }
> <...>
> location /blog_images/ { root /blogimagesroot/; }
> 
> Однако есть fileName имеет вид some%20file.jpg, nginx не превращает его 
> в пробел и соответвенно не находит файл.
> 
> А вообще очень хотелось бы иметь возможность делать рерайты и аргументам 
> запроса не прибегая к if.

Думаю, вам стоит воспользоваться перловым обработчиком. Распарсить 
аргументы и сформировать хитрый внутренний редирект - эта работа как раз 
для него.

> Может стоит завести опцию к rewrite или отдельную директиву для этого 
> (типа rewrite_uri)?

Нет, пожалуй не стоит.


-- 
Best regards,
Andrew A. Kopeyko <kaa at zvuki.ru>
http://www.zvuki.ru/





More information about the nginx-ru mailing list