Re: регулярное выражение
Igor Sysoev
igor на sysoev.ru
Ср Мар 28 05:17:05 UTC 2012
On Tue, Mar 27, 2012 at 10:45:41PM +0400, r3borned at gmail.com wrote:
> Приветствую.
> Есть вот такое дело в конфиге:
> location ~ ^/((240|110)x(320|120))/(.*pic-.*)$ {
> alias /www/mysite.ru/$4;
> image_filter resize $2 $3;
> }
> Собственно, все работает, но хочется кое-что улучшить. А именно: здесь можно юзать 4 комбинации: 240х320, 240х120, 110х320, 110х120 - они все попадают под регулярку. А я хочу, чтобы попадало только 240х320 и 110х120. Да, можно переписать ее, но в то же время мне нужно чтобы ширина и высота были в $2 и в $3, чтобы передать их в image_filter.
> Что можете посоветовать в такой ситуации? Как оптимально решить задачу?
Если решать задачу действительно оптимально, то есть, чтобы не писать
по-меньше, как часто думают про оптимально, а чтобы поддерживать
конфигурацию было проще, то от регулярных выражений нужно отказаться
или же локализовать их:
location /240x320/ {
location ~ ^/240x320/(.*pic-.*)$ {
alias /www/mysite.ru/$1;
image_filter resize 240 320;
}
return 404;
}
location /110x120/ {
location ~ ^/110x120/(.*pic-.*)$ {
alias /www/mysite.ru/$1;
image_filter resize 110 120;
}
return 404;
}
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru