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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
Cakephp 执行主要流程
Mar 24 PHP
php指定函数参数默认值示例代码
Dec 04 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
phpinfo的知识点总结
Oct 10 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
简单的页面缓冲技术
2006/10/09 PHP
Ajax PHP分页演示
2007/01/02 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
node.js中的require使用详解
2014/12/15 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
js实现简易ATM功能
2020/10/27 Javascript
Python全局变量操作详解
2015/04/14 Python
python比较两个列表大小的方法
2015/07/11 Python
python定时关机小脚本
2018/06/20 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
数据库连接池的工作原理
2012/09/26 面试题
中学生社会实践活动总结
2014/07/03 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
新生开学寄语大全
2015/05/28 职场文书
妈妈别哭观后感
2015/06/08 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL