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之第三天
Oct 09 PHP
PHP开发文件系统实例讲解
Oct 09 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php读取msn上的用户信息类
Dec 05 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
php正则表达式使用方法整理集合
Jan 31 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP加密解密实例分析
2015/12/25 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
php多进程应用场景实例详解
2019/07/22 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
puppeteer库入门初探
2019/01/09 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
利用python画一颗心的方法示例
2017/01/31 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python线程join方法原理解析
2020/02/11 Python
pycharm的python_stubs问题
2020/04/08 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
租房协议书
2014/04/10 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
自信主题班会
2015/08/14 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
python 镜像环境搭建总结
2022/09/23 Python