我将 CodeIgniter 3 应用程序从 Apache 服务器迁移到 Nginx。对于已登录的用户,应该可以下载一些 PDF 文件。我需要直接阻止对这些文件夹的访问。例如:example.com.br/files/xyz.pdf。如果我在未登录的情况下访问浏览器,则可以访问这些文件。如果我输入:
location /(versoes|lgpd)/ {
deny all;
return 403;
}
它不起作用。仍可访问。
问题:我需要阻止外部访问,但是允许登录的用户能够下载。
我将 CodeIgniter 3 应用程序从 Apache 服务器迁移到 Nginx。对于已登录的用户,应该可以下载一些 PDF 文件。我需要直接阻止对这些文件夹的访问。例如:example.com.br/files/xyz.pdf。如果我在未登录的情况下访问浏览器,则可以访问这些文件。如果我输入:
location /(versoes|lgpd)/ {
deny all;
return 403;
}
它不起作用。仍可访问。
问题:我需要阻止外部访问,但是允许登录的用户能够下载。
如果你说的“/(versoes|lgpd)/”是指用正则表达式捕获“versoes”或“lgpd”,那么你的网址要么是
example.com.br/versoes/
或者
example.com.br/lgpd/
然后,您应该添加“~”作为指示,表示后面的内容应被视为正则表达式(除非您的 URL 是
example.com.br/(versoes|lgpd)/
字面意思)。此外,添加“^”来表示 URL 的开头也是一种很好的做法(再次强调,假设您指的是正则表达式)。因此,我的配置将如下所示:
我还想指出,您可以(可能也应该)考虑文件权限。
例如:如果您的 nginx 正在将
nginx:nginx
的所有者versoes
和lgpd
目录更改为 ,比如说:root
,也会阻止外部访问(因为 nginx 默认无法读取它们)。