Вот мой конфиг:
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. В результате даже при его использовании загружается правильный файл конфигурации. Мне просто нужно открыть вкладку браузера, чтобы проверить авторизацию.