我在为最终带有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(?)新手。 我甚至关闭了吗?
答案 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个字符而且。需要逃脱