ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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

11 декабря 2008 г. 19:33 пользователь Igor Sysoev <is@xxxxxxxxxxxxx> написал:
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@xxxxxx
>

--
Игорь Сысоев
http://sysoev.ru




--
С уважением, Борис Долгов.
icq 77556665
e-mail boris@xxxxxxxxxxx


 




Copyright © Lexa Software, 1996-2009.