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
|