使用Nginx保护单个文件的密码

use*_*277 1 authentication nginx

我尝试密码保护文件的位置阻止说admin.php不起作用。以下是我的Nginx配置

location = /admin.php {
             root /var/www/site.com/public_html/www;
             index index.php index.html index.htm;
             auth_basic            "Restricted Area";
             auth_basic_user_file  /var/www/site.com/public_html/htpasswd;
        }

location ~* \.php$ { 
    root /var/www/site.com/public_html/www;
    try_files $uri =404;
    fastcgi_pass   unix:/tmp/php5-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    fastcgi_read_timeout 300;
}
Run Code Online (Sandbox Code Playgroud)

我尝试更改location = /admin.php {location ~/admin\.php$ {location /admin.php {但均无效果

admin.php的网址是:https : //mysite.com/admin.php

是的,我每次尝试后都重新加载了Nginx

亲切的问候

Gho*_*ode 6

我来晚了,但这是您要寻找的规则:

location ~ /admin\.php$ {
    auth_basic "Restricted Area";
    auth_basic_user_file /path/to/.htpasswd;
    root /var/www/site.com/public_html/www;
    try_files $uri =404;
    fastcgi_pass   unix:/tmp/php5-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    fastcgi_read_timeout 300;
}
Run Code Online (Sandbox Code Playgroud)

您需要在PHP文件的位置块中包含fastcgi处理。希望这对某人有帮助!