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

защита паролем nginx не работает

У меня проблемы с установкой пароля на целевой странице моего сайта. Я видел, как этот вопрос задавали несколько раз, и пробовал исправления, за которые проголосовали за каждое сообщение. До сих пор я пытался изменить разрешения для .htpasswd, изменив местоположение .htpasswd, используя местоположение абсолютного пути для .htpasswd и разместив директивы auth_basic и auth_basic_user_file за пределами 'location' и в основном блоке 'server', но поп -up, запрашивающий имя пользователя и пароль, все еще не отображается, когда я перехожу на свой URL. Я бы хотел, чтобы при переходе к моему основному URL-адресу появлялось всплывающее окно с запросом пароля, а не какой-либо определенный каталог или файл. Я просмотрел и выполнил множество руководств и использовал команду htpasswd для создания файла .htpasswd. Насколько я понимаю, это правильная конфигурация / etc / nginx / sites-enabled / default. Что я здесь делаю не так?

Это мой файл конфигурации:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;
    return 310 https://$server_name$request_uri;

    location / {
            try_files $uri $uri/ =404;
            auth_basic "Under Construction";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }
 }

Ваш return заявление отменяет location заявление.

У вас должна быть такая конфигурация:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;

    location = / {
            try_files $uri $uri/ =404;
            auth_basic "Under Construction";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }

    location / {
        return 310 https://$server_name$request_uri;
    }

}

Так что location = / выражение соответствует ровно одному пути, здесь это корневой URI для сайта.

Тогда location / соответствует всем остальным путям на сайте.

nginx анализирует location блокировать так, чтобы location с участием = всегда используется, если несколько location блоки соответствуют одному и тому же пути.