ПРОЕКТЫ 


  АРХИВ 


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: Re: Re[2]: locat ion... не понятно



Hello!

On Wed, 17 Oct 2007, AlexeyK wrote:

Вы знаете, без разницы, я об этом как-то писал в рассылку, но письмо
осталось без внимания.

Есть, к примеру, 2 локейшна, один хандлер пхп

Ещё раз для тех кто не смотря ни на что всё-таки не понял: в nginx'е НЕТ никаких "хандлеров". Есть ТОЛЬКО location'ы. И запрос выполняется в контексте одного конкретного location'а.

Как написать location'ы так, чтобы авторизация срабатывала и для статики, и для проксируемых php скриптов - тут неоднократно говорилось:

location /phpmyadmin/ {
    deny all;
    ...
}
location ~ ^/phpmyadmin/.*\.php {
    deny all;
    fastcgi_pass ...
    ...
}

И убедится что "location ~ ^/phpmyadmin/.*\.php" стоит перед другими location'ами с регулярными выражениями.

Если хочется действительно deny all - т.е. просто всё закрыть, то можно ещё сделать

location ^~ /phpmyadmin/ {
    deny all;
}

В этом случае location'ы с регулярными выражениями проверяться не будут.

Подробнее о том как писать location'ы и как именно выбирается location, в контексте которого будет обработан запрос, можно прочитать тут:

http://www.sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location

http://www.lexa.ru/nginx-ru/msg13656.html вот письмо, и еще одно
http://www.lexa.ru/nginx-ru/msg13621.html, в которых обсуждалась
данная проблема, но ответы так и не были найдены/даны.

Обсуждалась совсем другая проблема. А именно - как бы такое сделать, чтобы лишний location не писать. Ответ - никак.

Совсем правильный ответ - перепроектировать систему так, чтобы location'ы с регулярными выражениями в конфиге отсутствовали.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.