Apache服务器下防止图片盗链的办法


Posted in PHP onJuly 06, 2015

先解释一下图片防盗链和转向:

图片防盗链有什么用?

防止其它网站盗用你的图片,浪费你宝贵的流量。

图片转向有什么用?

如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡。

下面开始讲解,比如你的图片都在img目录下,那就在该目录下放一个名为 .htaccess 的文件,内容如下:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !simcole.cn [NC]

RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]

RewriteCond %{HTTP_REFERER} !google.com [NC]

RewriteCond %{HTTP_REFERER} !baidu.com [NC]

RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

RewriteRule ^(.*)$ http://image.simcole.cn/image/$1 [L]

大概解释下:

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !simcole.cn [NC]

RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]

RewriteCond %{HTTP_REFERER} !google.com [NC]

RewriteCond %{HTTP_REFERER} !baidu.com [NC]

RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

这部分是判断是否盗链,如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自simcole.cn,也不是来自zhuaxia.com,也不是来自google.com,也不是来自baidu.com,也不是来自bloglines.com 的话),就执行下列转向:

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

意思是让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用 image 目录下的 replace.gif 图片替换掉。注意替换显示的图片不要放在设置防盗链的 img 目录下。如果照上面的规则判断出图片请求不是盗链的,就执行以下转向:

RewriteRule ^(.*)$ http://image.simcole.cn/image/$1 [L]

意思是对 img 目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.bebecn.com/img/girl.jpg ,现在就会转到 http://image.bebecn.com/image/girl.jpg 去。当然了你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了.

PHP 相关文章推荐
特转载一高手总结PHP学习资源和链接.
Dec 05 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
sphinx增量索引的一个问题
Jun 14 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
cakephp打印sql语句的方法
Feb 13 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 #PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 #PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 #PHP
php导出中文内容excel文件类实例
Jul 06 #PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 #PHP
PHP 错误处理机制
Jul 06 #PHP
帝国cms常用标签汇总
Jul 06 #PHP
You might like
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python实现2048小游戏
2015/03/30 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
python实现发送邮件功能
2017/07/22 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
python验证身份证信息实例代码
2019/05/06 Python
python中dict使用方法详解
2019/07/17 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
旷课检讨书3000字
2014/02/04 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
党员承诺践诺书
2014/05/20 职场文书
商场促销活动策划方案
2014/08/18 职场文书
美丽心灵观后感
2015/06/01 职场文书
恰同学少年观后感
2015/06/08 职场文书
单位工资证明范本
2015/06/12 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
Python办公自动化解决world文件批量转换
2021/09/15 Python