Iirf.ini如何设置伪静态防盗链

本规则支持白名单排除式防盗链,搜索引擎友好不屏蔽,被盗链后的错误提示转向,支持各种文件类型,经作者亲验真的能用

  网站程序的URL伪装法、服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现

  经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常。

  详细如下;

  一、完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面)

  RewriteCond Host: (.+)

  RewriteCond Referer: (?!http://\1.*).*

  RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

  第一行通过RewriteCond的HOST定义其下的规则所适用的请求主机范围。

  第二行通过RewriteCond的Referer定义规则适用的请求来源地址,我们都知道任何通过互联网方式访问网站都会留下Referer的痕迹,就好像我们在IIS日志里看到的一样。这里的(?!http://\1.*).*意思就是判断所有通过http协义发来的请求,都要应用规则。

  第三行通过RewriteRule定义防盗链文件的后缀,这里仅是图片后缀,需要的可以添加mp3,rar等其它所有后缀。后面的/block.gif表示如果遇上这些后缀的文件被盗链后的转向,这里转向/根目录的block.gif,可以是HTML等任何文件。如果只想某个文件夹下面的文件不被盗链,只需要加上路径就可以。例如不想images和pic目录下的文件被盗,但其它可以。就要改写成:

  RewriteRule (/images/|/pic/).*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

  这种情况主要是有些站长在别人友情链接里的图片地址是在自己这的。

  最后面的[I,O,N],I表示不区分大小写,O表示对URL进行标准化,可能是用来处理Unicode编码的地址(例如包含中文的URL)以及QueryString的内容,N表示重新从站点请求文件而不是从本地缓存读取文件,目的是防止当用户访问了盗你链的网站后,再回到你的网站也出现盗链提示。

  提示,由于此规则是通过Referer来获取带有http://字样的地址进行过滤,因此它无法防范其它协议的盗链,比如迅雷下载。但通过任何浏览器直接访问,只要是HTTP协义的,通杀。

  以上关于RewriteCond和RewriteRule的作用仅是本人的土法理解,欢迎在这方面有专业研究的朋友在评论中指正,以免误导,另外如果遇到isapi-rewrite版本问题,只要保证后面的正则式写法正确就行。

  二、排除性防盗链写法

  RewriteCond Host: (.+)

  RewriteCond Referer: (?!http://\1.*).*

  RewriteCond Referer: (?!http://(.*)(\.baidu\.com|\.google\.com|\.google\.cn|\.g\.cn|\.gougou\.com|\.soso\.com|\.sogou\.com|\.youdao\.com|\.bing\.com|\.yahoo\.com|\.yahoo\.cn|\.eojoo\.com)).*

  RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

  第一行同上

  第二行同上

  第三行通过正则表达式对第二行中的请求协义地址进行过滤,这里按上面的写法,过滤了所有流行的搜索引擎,当然也包括你自己的站,或是你同台服务器其它的站。每个不同的域名写法是\.baidu\.com,多个有|号相隔。如果是IP则这样写100\.100\.100\.100

  第四行同上

  这样说明应该不难理解吧,直接拿去用,按着原有格式改。

  规则中出现的正则表达式符号小解:

  . 表示匹配除换行符以外的任意字符

  + 表示前面的字符可以出现一到任意多次

  * 表示前面的字符可以出现零到任意多次

  () 表示一个表达组,可以拿它和加减乘除法一起理解

  ?! 表示断言这个符号后面的字符如果出现则不再进行接下去的匹配

  \ 表示转义符号,比如网址中的.是规则内置的运算符号,要把它通过\转义成字符。

  | 表示或者,用于连接多种可能


该文章出自妙点子,原文链接:http://miaodianzi.fillseo.com/details/4067.html 转载请务必保留此链接,谢谢!

 

=============================================

的虚拟主机空间是什么系统?

1、虚拟主机是Windows系统

首先建一个httpd.ini文件,写入如下代码,上传至网站根目录:

-------------------------------代码分割线-------------------------------

[ISAPI_Rewrite]

CacheClockRate 3600

RepeatLimit 32

#已配置了伪静态的可以删除上面三行代码

#下面是防盗链设置

RewriteCond Host: (.+)

RewriteCond Referer: (?!http://(?:128p\.com|(.*)\.128p\.com|baidu\.com|(.*)\.baidu\.com|google\.com|(.*).\google\.com)).*

RewriteRule .*\.(?:jpg|jpeg|gif|png|bmp|rar|zip|exe) /nopic.gif [I,O,N]

-------------------------------代码分割线-------------------------------

说明:

    上面是以我的网站www.128p.com为例,输入的网站不作防盗链处理,便于收录,站与站之间用“|”分隔,一个站得有两个部分【baidu\.com|(.*)\.baidu\.com】,添加的时候这样添加。

    最后面那一行代码是防盗链扩展名,自己添加修改;/nopic.gif是当别人盗链的时候显示这张图片,存放在网站根目录就行了。

2、虚拟主机是Linux系统

首先建一个.htaccess文件 (linux系统一般是Apache服务器),写入如下代码,上传至网站根目录:

-------------------------------代码分割线-------------------------------

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !765h.com [NC]

RewriteCond %{HTTP_REFERER} !google.com [NC]

RewriteCond %{HTTP_REFERER} !baidu.com [NC]

RewriteCond %{HTTP_REFERER} !www.hihi123.com [NC]

RewriteRule .*\.(gif|jpg|png)$ http://www.765h.com/nopic.gif [R,NC,L]

-------------------------------代码分割线-------------------------------

说明:

    上面是以我的网站www.765h.com为例,依次设置允许访问的HTTP来源,包括我们的站点自身、google.com、baidu.com这些搜索引擎网站,便于收录,可以添加更多网站,复制多一行修改就行了。

    最后面那一行代码是防盗链扩展名,自己添加修改;http://www.765h.com/nopic.gif是当别人盗链的时候显示这张图片,存放在网站根目录就行了。

 

===================

http://dansan.blogbus.com/logs/87945905.html

 

=============================

IIS下完全免费的IIRF(Ionic's Isapi Rewrite Filter)仿盗链设置

http://blog.52news.com/article.asp?id=1468

你可能感兴趣的:(Iirf.ini如何设置伪静态防盗链)