nginx .htaccess

Igor Sysoev igor на sysoev.ru
Пн Апр 11 18:36:33 MSD 2011


On Mon, Apr 11, 2011 at 02:18:48PM +0300, Дмитрий Леоненко wrote:
> Игорь, а чем этот способ выгодно отличается от rewrite? Как по мне он
> сложнее. Больше текста, матчинг один и тот же производится по регулярке

Да, на первый взгляд он сложнее. И на второй тоже.
А когда конфигурация будет на три экрана - уже нет.

Во-первых, если на первом уровне нет location'ов с регулярными
выражениями, то "location /sig/" однозначно определяет, где
будет обрабатываться запрос. Если потом добавиться
"location /sig/something/", его можно тупо добавить в конфиг, куда
хочется и ничего не сломается. Простым посиком "/sig/" можно
быстро увидеть конфликтные ситуации.

Во-вторых, вложенными location'ами мы сразу описываем, что нужно
делать, а не реврайтим в некий /index.php, который нужно искать.

И вот когда конфигурация вырастает, эти location'ы остаются локально
простыми и независимыми - их можно менять, не думая, как эти
изменения скажутся на остальной конфигурации. К ним можно добавлять
новые location'ы, не думая, как эти добавления отразятся на старой
конфигурации.

> 2011/4/11 Igor Sysoev <igor at sysoev.ru>
> 
> > On Mon, Apr 11, 2011 at 06:33:32AM -0400, Test1k wrote:
> > > Спасибо за совет , если не трудно все же
> > > подскажите как мне правильно
> > > переписать эти реврайты , хочу просто
> > > понять принцип .
> >
> > Принцип очень простой - забыть о реврайтах как о страшном сне:
> >
> > location /sig/ {
> >
> >    location ~ ^/sig/sig_([0-9].*)_([0-9].*)_mini.png$ {
> >         fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
> >         fastcgi_param  QUERY_STRING     id=$1&template=$2&mini=true;
> >         ...
> >    }
> >
> >    location ~ ^/sig/sig_([0-9].*)_mini.png$ {
> >         fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
> >         fastcgi_param  QUERY_STRING     id=$1&mini=true;
> >         ...
> >    }
> >
> >    ...
> > }


-- 
Igor Sysoev
http://sysoev.ru/en/



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