我做一件我认为很简单的事情却遇到了麻烦。我们需要防止从一个域热链接到一个目录和一个脚本。这是我的 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