ПРОЕКТЫ 


  АРХИВ 


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: Использование get параметров запроса $arg_name в try_files



Hello!

On Wed, Apr 22, 2009 at 07:37:38PM +0300, Taras Murashko wrote:

> Здравствуйте,
> 
> Решил обратится к сообществу за советом.
> При переходе с lighttpd хочу попутно реализовать отдачу пользовательских
> картинок через nginx(0.7.50).
> Урл картинок: /img/$img_id/$file_name?width=$width&heigth=$height
> Путь к файлу:
> /opt/images/$img_id_$file_name/T_w$width_h$height_fORIGINAL_$img_id_$file_name
> Если в запросе не указаны width и heigth
> то путь к файлу: /opt/images/$img_id_$file_name/$img_id_$file_name
> 
> Судя по документации параметры запроса хранятся в перемменых $arg_*name*
> Я попробовал следующий конфиг:
>         location ~* ^/img/([0-9]+)/(.*)?(.*)$ {
>              root /opt/images;
>              try_files /$1_$2/T_w$arg_width_h$arg_height_fORIGINAL_$1_$2
> /$1_$2/$1_$2  @backend;
>         }
> 
>         location / {
>         proxy_set_header  Host     $host;
>             proxy_pass http://127.0.0.1:5000;
>         }
> 
>         location @backend {
>         proxy_set_header  Host     $host;
>             proxy_pass http://127.0.0.1:5000;
>         }
> Но если в запросе присутствуют параметры width и heigth к примеру
> /img/1/1.jpg?width=100&height=100
> то nginx не отдает файл с заданными размерами, хотя если вместо
> try_files /$1_$2/T_w$arg_width_h$arg_height_fORIGINAL_$1_$2  /$1_$2/$1_$2
> @backend;
> прописать явно
> try_files /$1_$2/T_w100_h100_fORIGINAL_$1_$2   /$1_$2/$1_$2  @backend;
> то отдается  файл с заданными размерами 100 на 100.
> 
> В чем может быть проблема ?


Вероятно - в том, что параметра $arg_height_fORIGINAL_ нет, равно 
как и $arg_width_h.  Решение - использовать ${...} нотацию.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.