小站只有100个IIS,盗链后经常是连主页都打不开,就想着弄个图片防盗链,在网上找了一下资料,正则表达式的写法啊,ISAPI_REWRITE基本配置啊等等,找来啃了一天终于发现有三个方法实现.

第一、号称最简单的方法,在CSS中加入以下代码 img {filter:expression(this.不能去掉 ? "" (!this.complete) ? "" :
this.runtimeStyle.filter
= ("progidXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src +
"')") + String(this.不能去掉 = true).substr(0, 0) +(this.src =
"http://www.5x5y.cn/blog/logo.gif").substr(0, 0) )
);}很遗憾,虽然看不懂但我试了不成功。查了一下苏沈小雨的CSS行为手册,说只有IE才支持CSS的expression行为,我用的不是,失败。


二、使用apache文件FileMatch限制,首先要确认你的服务器或空间的服务器解译引擎为Apache2,还有支持.htaccess客户设置文
件, 如果你有自己的服务器就请先对./conf/httpd.conf 文件做以下修改 找到:#LoadModule rewrite_module
modules/mod_rewrite.so
把前面的 # 给去丢 找到等一个 AllowOverride None 改为 AllowOverride All 重启Apache2服务器
接下就是在 新建一介.htaccess 文件加入以下内容:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.g-feel.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.g-feel.cn$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp)$  [R,NC]

或者RewriteRule \.(gif|jpg|png)$ 你的图片地址 [R=301,L]
其中有色的地方都是要改为你的:
红色:就是改为你提供下载页面的地址,也就是只有通过这个地址才可以下载你所提供的东东。如果你有多个域名或允许链接的网站就像第二行和第二行那样加上就行了
蓝色:就是要保护文件的扩展名(以|分开),也就是说以这些为扩展名的文件只有通过红色的地址才可以访问。
绿色:如果不是通过红色的地址访问蓝色这些为扩展名的文件时就回重定向到绿色地址上。
然后把.htaccess放到附件文件夹attachments里
第二种方法测试可用

第三种方法就是我现在用的方法,因为我的服务器环境是IIS6.0的,没法用第二种方法,那个在自己电脑上测试可用。
如果你的服务支持ISAPI_Rewrite,那么你就可以用这个方法了
isapi_rewrite利用正则表达式进行替换规则的表示。
进行正则表达式的编写的时候,做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。 在httpd.ini里加入
RewriteCond Referer: (?!http://www.pf55.com.*).*
RewriteCond Referer: (?!http://www.myjxtx.com.*).*
RewriteRule .*/upload_files/.*.(?:gif|jpg|jpeg|png|bmp) /err.gif [I,O]

把网址修改为你的网址。upload_files为你要防止盗连的图片目录,点前面加"",err.gif是你想在盗链的时候替换的图片,放在网站根目录下
修改时建议用Editplus,我一开始用记事本来改的,结果iis rewriter静态优化都失败了
这样图片防盗链就做好了

转自:http://www.phpwind.net/read/622475

IIS下图片防盗连设置详解的更多相关文章

  1. 完美的nginx图片防盗链设置详解

    一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通过浏览器直接输入图片地址,仍然会显示图片,仍然可以右键图片另存为下载文件!依然可以下载?这样就不是彻底的防盗链了! [r ...

  2. lnmp/nginx系统真正有效的图片防盗链完整设置详解

    http://www.it300.com/article-15345.html 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! ...

  3. windows下的定时任务设置详解

    windows下的定时任务设置详解 一.总结 一句话总结: 1.php.exe是什么? 就是php中自带的一个exe,不是我们写的,这个exe是可以执行其他的PHP的 二.windows下的定时任务设 ...

  4. Android图片缓存之Bitmap详解

    前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓 ...

  5. IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)

    IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...

  6. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

  7. IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  8. MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解

    MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...

  9. loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解

    运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...

随机推荐

  1. C51 库函数(1)

    C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明.如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明).例如: #includ ...

  2. Android SharedPreferences登录记住密码

    SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单 数据类型(boolean.int.float.long和S ...

  3. Xen、KVM和VirtualBox比拼

    vbox 与 kvm 的区别: vbox 是由 qemu 改写而成,包含大量 qemu 代码.可以使用于 不支持 虚拟化的cpu.值得说的一点:vbox 在图形方面比较好,能进行2D 3D加速.cpu ...

  4. Java---StringBuffer()方法的简单应用

    描述:在实际应用中,经常回遇到对字符串进行动态修改.这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加.插入和替换等操作. 1.构造函数.StringBuffe ...

  5. G - Balanced Lineup - poj3264(区间查询)

    题意:给你一组值,然后询问某个区间的最大值和最小值得差 分析:因为没有更新,所以只需要查找即可,节点保存一个最大值最小值就行了 ************************************ ...

  6. Python自动化之Django的CSRF

    什么CSRF? CSRF, Cross Site Request Forgery, 跨站点伪造请求.举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果 某个用户已经登录到你的网站上了,那么当这个 ...

  7. 修改上一篇文章的node.js代码,支持默认页及支持中文

    服务端 app.js var app = require('http').createServer(handler) var io = require('socket.io')(app); var f ...

  8. python_Opencv_图像的基础操作

    目标 获取像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 为图像扩充边缘 几乎所有以上的操作,与Numpy 的关系都比与OpenCV 的关系更加紧密,因此熟练Numpy ...

  9. 在Linux系统安装VMware Tools

    --Install VMware Tools --复制VMware Tools-xxx.tar.gz到根目录 cd /tar -vzxf VMware Tools-xxx.tar.gzcd vmwar ...

  10. 洛谷 P1412 经营与开发

    /* 粘一下开始写的暴力吧 虽然没啥价值 */ #include<iostream> #include<cstdio> #include<cstring> #inc ...