Nginx配置拒绝访问私有Laravel文件夹

时间:2015-12-01 23:02:01

标签: laravel nginx laravel-4

关于Laravel上nginx配置的每个答案或教程都有类似的内容:

location ~ \.php {
    # fastcgi stuff ...
}

如果Laravel框架有一个唯一的入口点(公共index.php),那么这个定义不是更准确吗?

location ~ index\.php {
    # fastcgi stuff ...
}

在您的应用程序部署在子文件夹上的上下文中,第一个配置允许访问每个php专用文件,即使我已经在私有文件夹上定义了deny all规则。

我错了什么?

还有另一种方法可以定义对文件夹的完全拒绝访问吗?

1 个答案:

答案 0 :(得分:1)

如果您想拒绝访问私人文件夹中的文件(例如/private),请将其添加到虚拟主机的配置中:

区分大小写

location ~ ^/private/(.*)\.php$ {
    deny all;
}

不区分大小写:

location ~* ^/private/(.*)\.php$ {
    deny all;
}

这会向/private/something.php/private/something/something.php返回403所有请求,依此类推。但是/private/something的请求会有效。