这是我的配置:
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 已启动,即使 auth_basic 授权被拒绝,它也会被下载为 php 文件。这意味着 auth_basic 窗口出现后,wp-login.php 才会被下载。
配置中哪些地方不正确?
答案1
问题出在浏览器中。在我使用了错误的配置(wp-login.php 已下载)后,每次检查配置时,我都会使用 F5 刷新浏览器。结果,即使它使用正确的配置文件也会被下载。我只需要打开浏览器选项卡来检查授权。