使用rewrite,开启apache的mode_rewrite模块,让服务器支持.htaccess文件目录权限设置,在网站根目录增加.htaccess文件,判断referer是否是本站地址,把非本地地址refer的文件都从定向到新的网页或提示网页上。使用.htaccess文件可以很方便的进行设置防盗链!
根据下面的设置基本可以做到简单的防止文件被盗链情况的发生,而且可以尽最大可能的减少服务器流量的消耗!
以下是.htaccess文件的内容:
-
- RewriteEngine On
- RewriteCond %{HTTP_REFERER} !^$ [NC]
- RewriteCond %{HTTP_REFERER} !phpfensi.com [NC]
- RewriteRule .*.(gif|jpg|png|swf)$ http:
-
上面的代码就是把百度等seo搜索引擎都防止了,我们可以把它们加进来
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$ [NC]
- RewriteCond %{HTTP_REFERER} !sudu.cn [NC]
- RewriteCond %{HTTP_REFERER} !baidu.com [NC]
- RewriteCond %{HTTP_REFERER} !Google.cn [NC]
- RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
- RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
- RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
- RewriteRule .*.(gif|jpg)$ http:
.htaccess文件代码解析:
RewriteEngine On:开启Rewrite模块
RewriteCond %{HTTP_REFERER} !^$ [NC]:允许空的网址来源,用户可以直接输入文件网址访问,如果不想让用户直接输入网址访问,请删除这行代码!
RewriteCond %{HTTP_REFERER} !jannn.com [NC]:允许访问的网址,可以自己根据需求增加,格式相同,把网址替换成允许访问的网址即可!
- RewriteRule .*.(gif|jpg|png)$ http:
括号中的是要防止盗链的文件拓展名,拓展名用符号“|”隔开,比如加上|mp3|swf|exe 等等,后面的网址是,出错时返回给盗链用户的地址,这个根据实际应用更改,比如你是防止图片防止盗链,可以给盗链者网页返回一张你设计好的版权图片!比如你防止盗链的是MP3文件,那么可以返回给盗链者网页一段自己的版权录音!也可以直接改为你网站地址,把流量都导入自己的网站!
说明一下其中的R、NC 和 L
R 就是转向的意思
NC 指的是不区分大小写
L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响
防止盗链的文件类型
上例中是 gif、jpg、png,而根据需要,可更改或添加其他文件类型,如rar、mov等,不同文件扩展名间使用“|”分割。
|