Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Подскажите правило для редиректа
On Fri, Apr 03, 2009 at 08:13:20PM +0400, Andrew Kopeyko wrote:
> On Fri, 3 Apr 2009, Andrew Kopeyko wrote:
>
> >On Fri, 3 Apr 2009, Peter wrote:
> >
> >>Есть папка foto с картинками, названия файлов вида 123456.jpg и
> >>sm_123456.jpg
> >>Хочу разложить все картинки в две папки sm и big, а внутри этих папок ещё
> >>по
> >>10 папкам - 0, 1, 2, 3... 9 по принципу "название папки = последняя цифра
> >>в
> >>названии файла". Т.е. обращения к файлу /foto/123456.jpg должны
> >>редиректиться (с 302-м редиректом) на /foto/big/6/123456.jpg, а
> >>/foto/sm_123456.jpg на /foto/sm/6/sm_123456.jpg
> >
> >Зачем внешний редирект, когда можно обойтись rewrite'ом?
> >
> >>Подскажите, как записать такую конструкцию?
> >
> >Как-то так :
>
> sorry, не проверил после copy-paste
>
> >location /foto/ {
> - rewrite (.*)\/([0-9]{5})(([0-9])\.jpg $1/big/$3/$2$3.jpg break;
> + rewrite (.*)\/([0-9]{5})([0-9])\.jpg $1/big/$3/$2$3.jpg break;
> - rewrite (.*)\/sm_([0-9]{5})(([0-9])\.jpg $1/sm/$3/sm_$2$3.jpg break;
> + rewrite (.*)\/sm_([0-9]{5})([0-9])\.jpg $1/sm/$3/sm_$2$3.jpg break;
> > ...
> >}
А ещё лучше взять современный nginx и
location ~ ^(/foto/)(\d{5})(\d)\.jpg$ {
alias /path/to$1/big/$3/$2$3.jpg;
}
location ~ ^(/foto/)(sm_\d{5})(\d)\.jpg$ {
alias /path/to$1/sm/$3/$2$3.jpg;
}
--
Игорь Сысоев
http://sysoev.ru
|