IIS下图片防盗连设置详解
小站只有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下图片防盗连设置详解的更多相关文章
- 完美的nginx图片防盗链设置详解
一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通过浏览器直接输入图片地址,仍然会显示图片,仍然可以右键图片另存为下载文件!依然可以下载?这样就不是彻底的防盗链了! [r ...
- lnmp/nginx系统真正有效的图片防盗链完整设置详解
http://www.it300.com/article-15345.html 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! ...
- windows下的定时任务设置详解
windows下的定时任务设置详解 一.总结 一句话总结: 1.php.exe是什么? 就是php中自带的一个exe,不是我们写的,这个exe是可以执行其他的PHP的 二.windows下的定时任务设 ...
- Android图片缓存之Bitmap详解
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓 ...
- IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...
- IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...
- IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)
IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...
- MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解
MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...
- loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解
运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...
随机推荐
- armv8(aarch64)linux内核中flush_dcache_all函数详细分析
/* * __flush_dcache_all() * Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ ENTRY( ...
- BZOJ 1022 [SHOI2008]小约翰的游戏John
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 1036[Submit] ...
- Android Develop 之 Ddevelop WorkFlow Basics
Android应用程序的开发流程一言以蔽之,可以用一图五步概括.一图如下. 第一步:安装.安装开发环境,包括JDK,Android Studio,SDK Manager(通常下载Android Stu ...
- js打开新的链接下载文件
var p =params.join("&"); var a = document.createElement('a'); a.href = 'report/exportp ...
- iOS NSInvocation的学习
用途: NSInvocation的作用和performSelector:withObject:的作用是一样的:用于iOS编程中调用某个对象的消息. performSelector:withObject ...
- oracle创建表空间,用户,授权等
#oracle数据库安装完成后,有两个系统级的用户system 默认密码为 :managersys 默认密码为 :change_on_install #创建表空间tbs_xxxdba,初始大小1G,每 ...
- Project Euler:Problem 47 Distinct primes factors
The first two consecutive numbers to have two distinct prime factors are: 14 = 2 × 7 15 = 3 × 5 The ...
- 一起来写2048(160行python代码)
前言: Life is short ,you need python. --Bruce Eckel 我与2048的缘,不是缘于一个玩家,而是一次,一次,重新的ACM比赛.四月份校赛初赛,第一次碰到20 ...
- 从sockaddr中取得Ip地址和端口号
在socket编程中,服务器端accept()等待一个客户端的连接,当连接成功后,accept拷贝客户端的地址信息到sin_addr里面,我们如何从sin_addr取得此客户端的Ip地址和端口号呢? ...
- 【字符串匹配】UVALive 4670 模板题
给一个文本T,和n个模板字符串,都是由小写字母组成,问这些字符串那些在字符串中出现的次数最多,输出最多的次数以及相应的字符串. AC自动机的模板题,递归输出的时候改成累加次数统计数组cnt即可. 大白 ...