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简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
php 删除数组元素
Jan 16 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
php中的一些数组排序方法分享
Jul 20 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
php中的静态变量的基本用法
Mar 20 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 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
Zerg兵种介绍
2020/03/14 星际争霸
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
详解Python迭代和迭代器
2016/03/28 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python的unittest测试类代码实例
2017/12/07 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
求职简历中个人的自我评价
2013/12/25 职场文书
文明学生标兵事迹
2014/01/21 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
代理协议书
2014/04/22 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
小学亲子活动总结
2014/07/01 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
中标通知书范本
2015/04/17 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL