国外服务器,流量都是收费的。如果您的图片或下载,被其它网站盗链,那浪费的是您自己的流量,自己的钱。如何设置IIS防止盗链,减少流量损失? 一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。
下载地址在: http://www.isapirewrite.com/
这里只有ISAPI Rewrite的一个LITE版本是免费的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虚拟站点配置,元数据监测和自动缓存清理。 但是基本的UrlRewrite功能都支持。也可以到这里下载:http://www.codepub.com/Software/View- Software-8709.html
IIS Rewrite 下载
IIS Rewrite 配置
1、将下载的 IIS Rewrite 组件解压,放到适当的目录(如 C:\Rewrite)下。
2、在“IIS管理器”里选择网站,右键,属性。
3、选择“ISAPI”,点击“添加”。
4、填入筛选器名称,如“rewrite”。
5、可执行文件下方点击“浏览”,选择刚才解压的Rewrite组件位置,Rewrite.dll。
6、确认选择正确后,点击“确定”。
7、点击“确定”,完成筛选器添加。
8、重启IIS。
9、重启IIS后,再次选择站点,右键,属性,看到如下所示向上的绿箭头,说明 IIS Rewrite 成功添加并运行。
IIS Rewrite 规则设置
解压后的 IIS Rewrite 组件目录(如 C:\Rewrite)中,有一个 httpd.ini 文件,将相应规则写入到这个文件中即可。
安装方法压缩包中 Readme.txt 也有说明。
如何进行UrlRewrite的设置?
isapi_rewrite利用正则表达式进行替换规则的表示。
下面是一个简单的例子,我想让我们的用户输入 http://localhost/test-12314.html 实际上访问的是 http://localhost/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp\?id=$1 。
进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。
IIS防盗链的方法是在httpd.ini里面加入如下语句
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]
然后重启IIS,这时防盗链就开始起作用了,其他网站盗链过来的请求都会被拒绝。 至此,我也终于可以摆脱了被盗链的烦恼了