拒绝访问PHP文件(Nginx)

Des*_*ume 6 php linux ubuntu webserver nginx

我希望Nginx拒绝访问特定的PHP文件,让我们调用它donotexposeme.php,但它似乎不起作用,PHP脚本像往常一样运行.这是我在配置文件中的内容:

location / {
    root /var/www/public_html;
    index index.php;
}

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/public_html$fastcgi_script_name;
    include fastcgi_params;
}

location /donotexposeme.php {
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

当然,每次编辑配置时我都会sudo service nginx reload(或restart).

Ja͢*_*͢ck 14

可以在此处找到nginx确定哪个位置匹配的顺序:

http://wiki.nginx.org/HttpCoreModule#location

使用其中任何一个都将在任何其他正则表达式之前匹配:

location = /donotexposeme.php
Run Code Online (Sandbox Code Playgroud)

要么

location ^~ /donotexposeme\.php
Run Code Online (Sandbox Code Playgroud)

第一个是精确匹配,而后者是正则表达式前缀匹配.