如何在 NGINX 中为一个文件设置 auth_basic?

如何在 NGINX 中为一个文件设置 auth_basic?

这是我的配置:

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 刷新浏览器。结果,即使它使用正确的配置文件也会被下载。我只需要打开浏览器选项卡来检查授权。

相关内容