如果正在热连接,我想提供一个原始文件,但如果有人在浏览器中访问该文件,请重新编写url。
我几次看到这个盗链的例子:
location /pictures/ { valid_referers none blocked mywebsite.com *.mywebsite.com; if ($invalid_referer) { return 403; } }
但是,我怎样才能引用有效的查阅者? 我试图提供原始文件,如果它被链接到另一个页面(热链接)。
如果有人在浏览器中查看该文件,我想添加一些HTML(即重写到另一个URL);
$invalid_referer
之外还有哪些variables可用?
我试过了:
if( !$invalid_referer){ return 403; #allow hot-linking only; }
在文档中可以看到没有提及其他可用的variables。 http://nginx.org/en/docs/http/ngx_http_referer_module.html
你可以检查$ invalid_referer的值
从文档 :
指定将导致embedded的$ invalid_referervariables设置为空string的“Referer”请求标头字段值。 否则,variables将被设置为“1”。 search匹配不区分大小写。
if($invalid_referer = ""){ return 403; #allow hot-linking only; }
你也可以做
if($invalid_referer != "1"){ return 403; #allow hot-linking only; }