ПРОЕКТЫ 


  АРХИВ 


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: Как работает / как отлючить директиву index



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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.