Nginx 怎么阻止静态资源被直接访问(如图片或CSS)而必须要求在被信任的域名上的页面中引用?

Timtim
  • 25

当检测到盗链时不返回静态资源。 (比如a.jpg只有当被mydomain.com和baidu.com上的页面引用时正常输出而不能被直接访问或在其他域名上引用)

我在网上搜索到以下配置代码,但是配置上去后,我自己的网站的图片也显示盗链,所以不成功

location ~* .(gif|jpg|png|jpeg)$ { 
expires 30d; 
valid_referers *.我的域名 我的域名; 
if ($invalid_referer) { 
rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg; 
#return 404; 
} 
}
回复
阅读 7.2k
1 个回答

location ~ .(jpe?g|png|gif)$ {

 valid_referers none blocked mydomain.com *.baidu.com;
 if ($invalid_referer) {
    return   403;
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏