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