Назад | Перейти на главную страницу

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

Мне нужно защитить один каталог с помощью базовой аутентификации и переписать все 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;
}