ПРОЕКТЫ 


  АРХИВ 


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: поведение try_files



On Wed, Aug 05, 2009 at 12:50:07PM +0400, Alexey Bazhin wrote:

> Здравствуйте!
> 
> Решил воспользоваться директивой try_files и тут же возникли вопросы
> по ее повидению.
> 
> Верия nginx 0.7.61, короткий тестовый конфиг такой:
> 
> worker_processes  1;
> events {
>  worker_connections 1024;
> }
> 
> http {
>  include mime.types;
>  default_type application/octet-stream;
>  server {
>   listen 80;
>   server_name localhost;
> 
>   location / {
>    if ($uri ~ .*) {
>     set $a a;
>    }
>    root /usr/local/nginx/html;
>    try_files /test.txt /index2.html /index.html =403;
>   }
> 
>  }
> }
> 
> Все три файла указанных в try_files существуют в /usr/local/nginx/html.
> При запросе корня я получаю index.html, если закомментировать if то
> получаю index2.html. А наскольно я понял из документации я должен
> получать test.txt, это так? И почему на результат влияет наличие if-а
> который ничего не меняет?

Потому что if - это невидимые грабли.

А конструкции
    "if ($uri ~ ..."
нужно заменять на
    "location ~ ..."

В такой

   location / {
       root /usr/local/nginx/html;
       try_files /test.txt /index2.html /index.html =403;
   }

с существующим /usr/local/nginx/html/test.txt у меня на любой запрос
выдаются содержимое test.txt.


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



 




Copyright © Lexa Software, 1996-2009.