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