在nginx中阻止apc.php文件


Block apc.php file in nginx

我正在尝试阻止我的Web服务器上的apc.php文件。如果执行以下操作,它会起作用,但我认为有更好的方法可以做到这一点,并将拒绝/允许规则放在通用位置~.php$块下面。用fastcgi-params必须有两个块似乎是不对的。

#Block to apc.php
location ~ /apc.php {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    allow 192.168.3.0/24;
    deny all;
}
# use fastcgi for all php files
location ~ '.php$
{
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

由于if语句中不允许使用"deny",因此您可以使用类似location / { location /uri/ {} }的嵌套位置,但Nginx手册中不鼓励使用:

"虽然配置文件解析器允许嵌套位置,不鼓励使用它们,并且可能产生意想不到的结果。"