Re: Простейшая арифметика в конфиге

Валентин Бартенев ne на vbart.ru
Пн Ноя 28 10:14:25 UTC 2011


On Monday 28 November 2011 12:20:48 mennanov wrote:
> У меня есть папка "i" в корне сайта, в ней
> лежат папки типа 0, 100, 200, 300 ... 600000 ...etc, а
> уже в них лежат файлы .jpg
> Т.е. я создаю отдельную папку для каждой
> сотой картинки, так в папке 200 будут
> лежать файлы 200.jpg - 299.jpg, в папке 300 будут
> файлы 300.jpg - 399.jpg
> Проблема в то что я не могу написать
> соотв. конфигурацию и вычислить
> название этой папки, вычисляется оно
> просто: ID - (ID%100), т.е. для запроса /i/256.jpg
> будет вычислено: 256 - (256 % 100) = 200 и
> картинку следует искать по адресу
> /i/200/256.jpg
> 
> Я пробовал делать вот так:
> 
> location ~ /i/(.*)\.jpg {
> 	    set $folder $1-($1%100);
> 	    try_files /i/$folder/$1.jpg =400;
>         }
> 
> Но это не сработало из синтаксических
> ошибок...
> 

Попробуйте что-нибудь такое:

location /i/ {

  location ~ ^/i/(\d\d?)\.jpg$ {
    try_files /i/0/$1.jpg =400;
  }

  location ~ ^/i/((?<huns>\d+)\d\d)\.jpg$ {
    try_files /i/${huns}00/$1.jpg =400;
  }

}

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru