关于Laravel上nginx配置的每个答案或教程都有类似的内容:
location ~ \.php {
# fastcgi stuff ...
}
如果Laravel框架有一个唯一的入口点(公共index.php
),那么这个定义不是更准确吗?
location ~ index\.php {
# fastcgi stuff ...
}
在您的应用程序部署在子文件夹上的上下文中,第一个配置允许访问每个php专用文件,即使我已经在私有文件夹上定义了deny all
规则。
我错了什么?
还有另一种方法可以定义对文件夹的完全拒绝访问吗?
答案 0 :(得分:1)
如果您想拒绝访问私人文件夹中的文件(例如/private
),请将其添加到虚拟主机的配置中:
区分大小写
location ~ ^/private/(.*)\.php$ {
deny all;
}
不区分大小写:
location ~* ^/private/(.*)\.php$ {
deny all;
}
这会向/private/something.php
,/private/something/something.php
返回403所有请求,依此类推。但是/private/something
的请求会有效。