我希望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;
}
当然,每次编辑配置时我都会sudo service nginx reload
(或restart
)。
答案 0 :(得分:14)
nginx确定哪个位置匹配的顺序可以在这里找到:
http://wiki.nginx.org/HttpCoreModule#location
使用其中任何一个都将在任何其他正则表达式之前匹配:
location = /donotexposeme.php
或者
location ^~ /donotexposeme\.php
第一个是完全匹配,而后者是正则表达式前缀匹配。