Nginx 限制访问目录中的文件,但不限制访问子目录中的文件

Nginx 限制访问目录中的文件,但不限制访问子目录中的文件

我实现了 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;
    }

相关内容