Рейтинг:0

Директива Nginx try_file не работает должным образом

флаг zm

Я пытаюсь понять конфигурационный файл Nginx. Вот мое дерево каталогов приложений:

/приложение
|-- abcd.html
|-- файл.php
|-- index.html
|-- index.php
|-- сс
| `-- index.html
|-- стиль.css
`-- thumb.png

Вот моя тестовая конфигурация nginx:

События {}
http {
        перезаписать_журнал;
        error_log /var/log/nginx/localhost.error_log отладка;
        сервер {
                включить mime.types;
                корень /приложение;
                слушать 8080;
                индекс index.html;
                место расположения / {
                        try_files $uri/ =404;
                }
        }
}

Насколько я понимаю конфигурационный файл Nginx, когда я запрашиваю локальный хост: 8080/, согласно документации try_files, он должен проверять файл /, то, поскольку это каталог, он должен обслуживать индексный файл внутри. Но на самом деле это не так. я тоже пробовал try_files $uri = 404;. Он также возвращает страницу 404. Но когда я пытаюсь try_files $uri $uri/ =404, он работает и отвечает индексным файлом. Кто-нибудь может объяснить, что происходит?

Я также попробовал кое-что еще, что не сработало, как ожидалось. Как и прежде, в контексте местоположения я попытался try_files /sss /sss/ =404. Я ожидал, что он служит мне индексным файлом внутри ссс каталог, независимо от того, какой у меня запрошенный URL. Но он застревает в бесконечном цикле запросов. Он отвечает перенаправлением 301 и запросами на /ссс/ URL. разве это не похоже на предыдущий случай, когда я использовал try_files $uri $uri/ =404?

Richard Smith avatar
флаг jp
Модуль [`index`](http://nginx.org/en/docs/http/ngx_http_index_module.html#index) отвечает за обработку URI, оканчивающихся на `/`. И это вызовет *внутреннюю переадресацию*, которая изменит значение `$uri` на `/index.html`. Вот почему вам нужны *оба* `$uri` и `$uri/` в операторе `try_files`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.