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

Как установить auth_basic для одного файла в NGINX?

Вот мой конфиг:

server {
        #...
        location ^~ /wp-login.php {
           auth_basic           "Restricted";
           auth_basic_user_file /var/www/.htpasswd;
        }

        location / {
            try_files $uri $uri/ /index.php?_url=$uri;
        }

        location ~ \.php {
            fastcgi_index  /index.php;
            fastcgi_pass unix:/var/www/php-fpm/fpm.sock;
            include fastcgi_params;
            fastcgi_param  QUERY_STRING    $query_string;
            fastcgi_split_path_info       ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO       $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param  APPLICATION_ENV dev;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;

            try_files    $uri =404;
        }
        #...
    I}

Все работает отлично, кроме wp-login.php. Если был инициирован wp-login.php, он будет загружен как файл php даже при отклоненной авторизации auth_basic. Это означает, что у меня появилось окно auth_basic и после этого будет загружен wp-login.php.

Что не так в конфигурации?

Проблема была в браузере. После того, как я использовал неправильную конфигурацию (загружается wp-login.php), каждый раз, когда я проверяю конфигурацию, я обновляю браузер с помощью F5. В результате даже при его использовании загружается правильный файл конфигурации. Мне просто нужно открыть вкладку браузера, чтобы проверить авторизацию.