Re: поведение try_files
Alex, the Marrch Ca'at
marrch.caat at gmail.com
Wed Aug 5 13:36:04 MSD 2009
Игорь, но это ведь ничего не объясняет! Как можно пользоваться в таком
случае средствами, которые даже в самых примитивных и очевидных
ситуациях не ясно как сработают?!
Вы сами-то понимаете, почему наличие if-а в данном случае влияет на
поведение try-files?? Если да - то объясните, пожалуйста!
С уважением -
Алекс Марртовский.
2009/8/5 Igor Sysoev <is at rambler-co.ru>:
> 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
>
>
More information about the nginx-ru
mailing list