Re: революционные нанотехнологии!

Борис Долгов boris at dolgov.name
Thu Dec 11 20:04:12 MSK 2008


use_file мне кажется наиболее удачным вариантом.

11 декабря 2008 г. 19:33 пользователь Igor Sysoev <is at rambler-co.ru>написал:

> On Thu, Dec 11, 2008 at 10:19:58PM +0600, Pavel V. wrote:
>
> >   Мне кажется название директивы не слишком интуитивно понятным.
> >
> >   Поскольку "критикуя-предлагай" хочу предложить переименовать её в
> >   что-то подобное "try_files", поскольку по смыслу оно пытается найти
> >   и отдать файлы, а не занимается проверкой совпадений.
>
> На данный момент у есть три варианта - try_file, test_file, use_file.
>
> > > Поскольку я уже не могу смотреть без боли на кучи реврайтов,
> > > то сегодня я изобрел революционную директиву file_match.
> >
> > > Вместо
> >
> > >    location / {
> >
> > >        if (-f $request_filename) {
> > >            break;
> > >        }
> >
> > >        if (-f $request_filename/index.html) {
> > >            rewrite (.*) $1/index.html break;
> > >        }
> >
> > >        if (-f $request_filename.html) {
> > >            rewrite (.*) $1.html break;
> > >        }
> >
> > >        if (!-f $request_filename) {
> > >            proxy_pass http://mongrel;
> > >            break;
> > >        }
> > >    }
> >
> > > предлагается писать
> >
> > >       location / {
> > >           file_match  $uri  $uri/index.html  $uri.html
> > >                       @mongrel;
> > >       }
> >
> > >       location @mongrel {
> > >           proxy_pass  http://mongrel;
> > >       }
> >
> > > Для любителей Drupal/Joomla:
> >
> > >       location / {
> > >           file_match  $uri  @drupal;
> > >           # то же самое, что
> > >           #    error_page  404 = @drupal; log_not_found off;
> > >       }
> >
> > >       location ~ \.php$ {
> > >           file_match  $uri  @drupal;
> >
> > >           fastcgi_pass   ...
> > >           fastcgi_param  SCRIPT_FILENAME /path/to$script_filename;
> > >       }
> >
> > >       location @drupal {
> > >           fastcgi_pass   ...
> > >           fastcgi_param  SCRIPT_FILENAME /path/to/index.php;
> > >       }
> >
> > > file_match перебирает параметры и пытается найти соответствие на
> файловой
> > > системе. Если файл найден, то URI меняется на этот параметр и обработка
> > > делается в том же location'е. Последний параметр - fallback.
> >
> >
> > --
> > С уважением,
> >  Pavel V. Rochnyack              mailto:pavel2000 at ngs.ru
> >
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>


-- 
С уважением, Борис Долгов.
icq 77556665
e-mail boris at dolgov.name
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20081211/90e0708a/attachment.html>


More information about the nginx-ru mailing list