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