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