Nginx auth basic не работает с перезаписью

Мне нужно защитить один каталог с помощью базовой аутентификации и переписать все URL-адреса только внутри этого каталога.

У меня следующая конфигурация:

    location /admin/ {
            auth_basic "Secure area";
            auth_basic_user_file .htpasswd;
            rewrite  ^(.*)$ /admin/index.php last; break;
    }

Однако базовая аутентификация не работает. Если я прокомментирую правило перезаписи , оно начинает работать.

Как это исправить?

2
задан 25 January 2017 в 11:38
1 ответ

"перезапись" выполняется перед базовой аутентификацией из-за рабочего процесса запроса.

попробуйте трюк со страницей ошибки и указанным местоположением:

 location /admin/ {
            auth_basic "Secure area";
            auth_basic_user_file .htpasswd;
            error_page 404 = @admin;
    }

location @admin {
            rewrite  ^(.*)$ /admin/index.php last;
}
0
ответ дан 3 December 2019 в 14:20

Теги

Похожие вопросы