nginx:拒绝目录内的所有文件
nginx: Deny all files inside directory
我有一个 "upload" 目录,用户可以在其中上传机密文件(jpg、png、pdf)。每个用户都会在上传中分配一个文件夹,例如:/001/、/002/、...、/999/ 等
我希望只能通过 SFTP 访问这些文件,因此 url http://example.com/upload/259/image.jpg 应该 return 403 错误消息。
我尝试了很多变体,但仍然可以通过 url.
访问文件
location ~ /upload/\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
有什么想法吗?
您仍然需要匹配该部分:'/259/image'
这应该有效:
location ~ /upload/.*\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
如果通过 sftp 只能 访问 /upload,那么这就是您所需要的:
location ^~ /download/ {return 403;}
通过使用 ^~ 跳过正则表达式循环,您将提高性能。此外,通过不使用正则表达式位置,您的配置将以更少的问题进行扩展。前缀位置可以去任何地方,但不是正则表达式位置。将使用第一个正则表达式匹配,这可能会导致混淆。
我有一个 "upload" 目录,用户可以在其中上传机密文件(jpg、png、pdf)。每个用户都会在上传中分配一个文件夹,例如:/001/、/002/、...、/999/ 等
我希望只能通过 SFTP 访问这些文件,因此 url http://example.com/upload/259/image.jpg 应该 return 403 错误消息。
我尝试了很多变体,但仍然可以通过 url.
访问文件location ~ /upload/\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
有什么想法吗?
您仍然需要匹配该部分:'/259/image'
这应该有效:
location ~ /upload/.*\.(jpe?g|png|gif|ico)$ {
deny all;
return 403;
}
如果通过 sftp 只能 访问 /upload,那么这就是您所需要的:
location ^~ /download/ {return 403;}
通过使用 ^~ 跳过正则表达式循环,您将提高性能。此外,通过不使用正则表达式位置,您的配置将以更少的问题进行扩展。前缀位置可以去任何地方,但不是正则表达式位置。将使用第一个正则表达式匹配,这可能会导致混淆。