具有ID的图像的Nginx热链接保护 - 我做错了吗?

时间:2014-10-30 08:09:10

标签: nginx hotlinking

我在为最终带有ID值的图像制作nginx热链接保护代码时遇到了一些麻烦,并且使用了。 图像之后。我只想阻止其他3个网站泄露我们的图片。

例如

mydomain.com/attachments/someimage-jpg.179394/
mydomain.com/attachments/6-jpg.185288/

图片显示的方式始终带有 -jpg -gif ,然后是。{ID} 并且尾随斜杠。

例如

/attachments/image-jpg.12345/

我正在尝试正则表达式(到目前为止,我显然没有希望),但它们没有任何效果,但也不会导致nginx重载的任何错误。

location /attachments/([0-9a-zA-Z])-(png|jpg|jpeg|gif).([0-9]+)/ {
if ($http_referer ~ ^(www.example.com|www.example.org|www.example.net)) {
  rewrite ^ url/to/leech.jpg;
 }
}

对不起,如果我上面的例子是可以做错的一切,做错了,但我是一个pcre(?)新手。 我甚至关闭了吗?

1 个答案:

答案 0 :(得分:0)

您的正则表达式错误

替换

/attachments/([0-9a-zA-Z])-(png|jpg|jpeg|gif).([0-9]+)

通过

/attachments/([0-9a-zA-Z])+-(png|jpg|jpeg|gif)[.]([0-9]+)

因为([0-9a-zA-Z])只匹配1个字符而且。需要逃脱