NGinx拒绝所有对文件夹的访问,但PHP脚本不受规则影响

时间:2018-08-21 12:42:24

标签: nginx web server configuration backend

我正在尝试在我的服务器配置文件中为NGinx设置安全性指令。我有以下指令:

location /config {
    deny all;
    return 404;
}

该目录中的所有文件都受到限制,但PHP文件不受该指令的影响,我的意图是拒绝所有内容。我假设配置文件中的另一条指令将覆盖此指令,但是我对NGinx还是个新手。

这是服务器的完整配置代码:

server{
        listen 80;
        server_name mydomain.com;
        root myrootpath;
        index index.php index.html index.htm;

        include security-directives;

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  
            $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

security-directives文件包含第一个代码块中详细说明的指令。

1 个答案:

答案 0 :(得分:2)

正则表达式位置块优先于前缀位置块,因此规则中不包含.php文件。

使用^~修饰符使前缀位置优先于正则表达式位置块。

例如:

location ^~ /config { 
    return 403; 
}

有关详细信息,请参见this document