FreeBSD 10.1 nginx/1.8.0 auth_basic
Maxim Dounin
mdounin на mdounin.ru
Пн Июл 13 15:40:04 UTC 2015
Hello!
On Sun, Jul 12, 2015 at 10:36:47AM -0400, bagas wrote:
> Добрый день.
> Возникла ситуация для меня не понятная.
>
> есть сайт на джумле 3,4
>
> # nginx -v
> nginx version: nginx/1.8.0
>
> Все нормлаьно, но недавно заметил один нюанс.
> Почему-то если ставиш авторизацию location /administrator/ , то позапросу
> name.ru/administrator/ запрос спрашивает авторизацию.
> А вот если Сделать запрос location name.ru/administrator/index.php то
> авторизация не спрашивается.
> Как быть в таком случае?
Это довольно типичная ошибка при использовании location'ов с
регулярными выражениями: вы добавили auth_basic в префиксный
location, но его нет в location'ах, заданных регулярными
выражениями. В результате ко всем ресурсам, которые попадают в
эти location'ы - доступ открытый.
Чтобы этого не происходило - проще всего изолировать регулярные
выражения внутри соответствующих префиксных location'ов. Пример
правильного конфига:
location / {
# open files
location ~ \.php$ {
fastcgi_pass ...
}
}
location /admin/ {
# restricted
auth_basic ...
auth_basic_user_file ...
location ~ \.php$ {
fastcgi_pass ...
}
}
Подробности про работу location имеет смысл почитать тут:
http://nginx.org/ru/docs/http/ngx_http_core_module.html#location
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru