我有一个“上传”目录,用户可以上传机密文件(jpg,png,pdf)。每个用户都被分配了一个内部文件夹,例如:/ 001 /,/ 002 /,...,/ 999 /等。
我希望这些文件只能通过SFTP访问,因此网址http://example.com/upload/259/image.jpg应该返回403错误消息。
我尝试了很多变体,但仍然可以通过网址访问这些文件。
location ~ /upload/\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
有什么想法吗?
答案 0 :(得分:1)
您仍然需要匹配该部分:' / 259 / image'
这应该有效:
location ~ /upload/.*\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
答案 1 :(得分:1)
如果通过sftp访问/上传仅,那么这就是您应该需要的:
location ^~ /download/ {return 403;}
通过使用^〜跳过正则表达式循环,您将提高性能。此外,通过不使用正则表达式位置,您的配置可以缩小问题。前缀位置可以在任何地方,但不是正则表达式位置。将使用第一个正则表达式匹配,这可能导致混乱。