Re: Как работает / как отлючить директиву index
Maxim Dounin
mdounin at mdounin.ru
Mon Sep 16 12:43:39 UTC 2013
Hello!
On Mon, Sep 16, 2013 at 04:00:47AM -0400, Yury Pavlovsky wrote:
> Спасибо, документацию читал.
> Повторюсь, исчерпывающего формального описания работы директивы там нет,
> передан лишь её смысл. Видимо, раз в документации никто до этого не написал,
> вряд ли мне стоит рассчитывать, что напишут тут, тем более что знают это
> только разработчики...
Повторюсь - прочитайте присланную ссылку ещё раз, внимательно. В
частности, со вот этот кусок:
: Обработка запроса “/” более сложная. Ему соответствует только
: префиксный location “/”, поэтому запрос обрабатывается в нём.
: Затем директива index проверяет существование индексных файлов
: согласно своих параметров и директиве “root /data/www”. Если файл
: /data/www/index.html не существует, а файл /data/www/index.php
: : существует, то директива делает внутреннее перенаправление на
: “/index.php” и nginx снова сопоставляет его с location’ами, как
: если бы такой запрос был послан клиентом. Как мы видели ранее,
: перенаправленный запрос будет в конечном итоге обработан сервером
: FastCGI.
http://nginx.org/ru/docs/http/request_processing.html
На заданный вами вопрос о порядке проверки индексных файлов и
location'ов он совершенно однозначно отвечает. Как разработчик
могу также уверить вас, что знают это - не только разработчики.
> Если есть способ отключить директиву "наверняка", напишите, пожалуйста.
> Думал можно пересобрать nginx без модуля ngx_http_index_module, но мой
> `nginx -V` (оф дебиан-репозитарий) не содержит ngx_http_index_module. Видимо
> этот модуль вшили в ядро?
Модуль index не отключается и всегда обрабатывает запросы,
оканчивающиеся слэшом, если обработка не перехвачена каким-либо из
безусловных обработчиков (proxy_pass, fastcgi_pass и т.п.) и/или
не прервана в процессе обриботки. Если очень хочется, чтобы index
не работал никогда, можно сделать так:
location ~ /$ { return 403; }
Но я сомневаюсь, что такая конфигурация вас устроит, с учётом
того, что обычно даже самый простой сайт требует index для
корректной работы. См. документацию выше.
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru