Nginx 防止来自一个域名的热链接

Nginx 防止来自一个域名的热链接

我做一件我认为很简单的事情却遇到了麻烦。我们需要防止从一个域热链接到一个目录和一个脚本。这是我的 nginx 规则

  location /gallery/files/6/7/5/ {
    if ($http_referer ~ ^(http://www.badsite.com|http://badsite.com)) {
      rewrite ^ http://www.oursite.com/hotlink.jpg;
    }
  }

  location /gallery/displayimage.php {
    if ($http_referer ~ ^(http://www.badsite.com|http://badsite.com)) {
      rewrite ^ http://www.oursite.com/hotlink.jpg;
    }
  }

如果不太明白,oursite.com/gallery/files/6/7/5 中有一堆 .jpg 文件,oursite.com/gallery/displayimage.php 中还有一个输出 JPG 图像的代理脚本。我们需要阻止对这两个位置的访问,但仅当引荐来源是 badsite.com 时才可以

我承认我不是 nginx 配置专家,但我认为上述阻止可以满足我们的需求。相反,热链接在 badsite.com 上仍然正常工作 - 请求未发送到 hotlink.jpg

相关内容