Мне нужно защитить один каталог с помощью базовой аутентификации и переписать все URL-адреса только внутри этого каталога.
У меня следующая конфигурация:
location /admin/ {
auth_basic "Secure area";
auth_basic_user_file .htpasswd;
rewrite ^(.*)$ /admin/index.php last; break;
}
Однако базовая аутентификация не работает. Если я прокомментирую правило перезаписи
, оно начинает работать.
Как это исправить?
"перезапись" выполняется перед базовой аутентификацией из-за рабочего процесса запроса.
попробуйте трюк со страницей ошибки и указанным местоположением:
location /admin/ {
auth_basic "Secure area";
auth_basic_user_file .htpasswd;
error_page 404 = @admin;
}
location @admin {
rewrite ^(.*)$ /admin/index.php last;
}