Nginx

如何在 NGINX 中為一個文件設置 auth_basic?

  • April 22, 2015

這是我的配置:

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。

什麼配置不正確?

問題出在瀏覽器中。在我使用錯誤的配置(wp-login.php 一直在下載)後,每次檢查配置時,我都會使用 F5 刷新瀏覽器。結果,即使它使用正確的配置文件也被下載。我只需要打開瀏覽器選項卡來檢查授權。

引用自:https://serverfault.com/questions/684336