我实现了 Nginx 安全链接模块,但无法使其工作。我确实阅读了 Serverfaulty 和 Stackowerflow 上的许多帖子,但没有成功。
我想限制对目录中任何全尺寸 /image/video 文件的访问:
/u/folder1/name.jpg
/u/folder2/name.mp4
同时我想允许访问位于
/u/folder1/thumb1/name.jpg
/u/folder1/thumb2/name.mp4
ETC。
我尝试了不同的变体,这是最后一个:
location ^/u/[0-9a-z]+/\.(jpg|mp4)$ {
secure_link $arg_cdg,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$remote_addr xxx";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
实际上,我不需要列出文件类型 - 我想限制对第二级子文件夹中任何文件的访问 -/u/任意文件夹/任意文件名
有什么帮助吗?
答案1
有了这些位置,/u/folder1 子文件夹中的任何内容都应该可以访问,但 /u/folder1 本身中的任何内容则不能访问。
location ~ ^/u/folder1/.+/ {
try_files $uri $uri/ =404;
}
location ~ ^/niv1/[^/]* {
return 403;
}