Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1087032
  • 博文数量: 321
  • 博客积分: 7872
  • 博客等级: 少将
  • 技术积分: 2120
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 09:06
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(1)

2015年(12)

2014年(17)

2013年(78)

2012年(15)

2011年(17)

2010年(67)

2009年(102)

2008年(11)

分类: LINUX

2013-03-15 17:57:57

一般常用的方法是在server或者location段中加入
valid_referers   none  blocked   website.com;
详见下面的例子
其中 none表示空的来路,也就是直接访问,比如直接在浏览器打开一个图片
blocked 表示被防火墙标记过的来路
server_names 也就是域名了, 可以用 *.website.com 来表示所有的二级域名

一、针对不同的文件类型
location ~* .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
     valid_referers none blocked *.website.com website.com;
     if ($invalid_referer) {
          #rewrite ^/ http:///error.html;
          return 403;
     }
}

第一行:wma|gif|jpg|png|swf|flv  表示对wma、gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行: *.website.com website.com 表示对 *.website.com website.com 这两个来路进行判断(*代表任何的二级域名),你可以添加更多, valid_referers 它的目的是检查来自客户端请求的 Referer HTTP 头,如果referer被认为无效,那么 $invalid_referer 被设置为 1
if{}里面内容的意思是,如果来路不是指定来路就跳转到403错误页面,当然直接返回404也是可以的,也可以是图片。

二、针对不同的目录
location /img/ {
    root /data/img/;
    valid_referers none blocked *.website.com website.com;
    if ($invalid_referer) {
         rewrite  ^/  http:///images/error.gif;
         #return   403;
    }
} 
转自:
阅读(548) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~