msgbartop
msgbarbottom

IIS真正能用的ISAPI-Rewrite防盗链规则写法 2010/09/26

通过恶补正则表白式相干教程并对先辈们留下的规章举行修正后,以下ISAPI Rewrite曾经在我的效力器上正常运作。

() 表示一个表白组,可以拿它和加减乘除法同时领会

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

老板,来个小解:

第四行同上

这么解释应当不难领会吧,直接拿去用,按着原有样式改。

二、消除性防盗链写法

鸣谢 menilui 的投稿

一、完整屏障所有盗链起源的写法(如已有其它规矩,则置于已有规定的上面)

规矩中展现的正则表白式记号小解:

| 表示或许,用于衔接多种也许

. 表示相称除换行符以外的恣意字符

+ 表示前面的字符能够展现一到恣意多次

最终面的[I,O,N],I表示不分辨大小写,O表示对URL举行准绳化,也许是用来解决Unicode编码的地址(譬如包罗中文的URL)以及QueryString的内容,N表示从新从站点央求文件而不是从当地缓存读取文件,目标是阻止当用户走访了盗你链的网站后,再回到你的网站也展现盗链提醒。

最近小站遭到了盗链问题,至使网站的流量白费散失,于是被迫预备为效劳器装配防盗链机制以拯救本就不富裕的带宽。穿过G.CN和B.CN搜查后得出了几种不同的计划,譬如网站过程的URL假装法、效力器端的收费插件法和ISAPI-REWRITE的规矩过滤法等,斟酌亲身网站构造和钱包的艰难问题,网站优化排名,最后抉择了后者,即目前盛行用来做伪静态的ISAPI Rewrite书写规章来完成我的防盗链“理想”。

提醒,由于此规定是穿过Referer来获得带有http://字样的地址举行过滤,因而它无法戒备其它协定的盗链,譬如迅雷下载。但通过任何博览器直接走访,但凡是HTTP协义的,通杀。

本规定声援白名单消除式防盗链,搜查引擎友爱不屏障,被盗链后的差错提醒转向,扶持各种文件类别,经作者亲验真的能用,第一工夫在chinaz.com原创宣告,请延续往下阅读。

?! 表示断言这个记号后边的字符万一展现则不再举行接下去的相称

第三行经过正则表白式对第二行中的央求协义地址举行过滤,此地按上面的写法,过滤了所有盛行的搜查引擎,当然也包罗你自己的站,或是你同台效力器其它的站。每个不同的域名写法是\.百度\.com,多个有|号相隔。万一是IP则这么写100\.100\.100\.100

为什么说是理想呢?最先表示痛惜,懒人我搜来了一大票通过无数次转载而来的文章,把现呈的代码利用后发觉要么基本不起作用,要么即使结果达不到我想要的,几经波折后终于把这原本以为能够随便借用照搬的防盗链给完结了,恨那些只会转载和伪原创的站长们,自己也不试试就拿来添补,害了多少人挥霍了大把的工夫。

第一行同上

经测验四种情形正常,即站内链接正常,白名单里的链接正常,盗链者链接屏障,搜查引擎链接正常。

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

全文完,本文由www.eojoo.com在第一工夫供给于chinaz.com的单一文章,未做防盗链,请保存奉献链接,谢谢。

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteCond Referer: (?!http://(.*)(\.百度\.com|\.谷歌\.com|\.谷歌\.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]

第二行穿过RewriteCond的Referer定义规定实用的要求起源地址,我们都知晓任何经过互联网方法走访网站都会留下Referer的印迹,就似乎我们在IIS日志里看到的一样。此地的(?!http://\1.*).*含义即使推断所有经过http协义发来的央求,都要利用规矩,上海网站优化公司

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

第一行经过RewriteCond的HOST定义其下的规章所实用的央求主机范围。

这种情形首要是有些站长在旁人友谊链接里的图片地址是在自己这的。

老板,来个小解:

第二行同上

翔实如下;

经过以上这“杂乱无章”的记号,居然形成了如此壮大的规矩,慨叹!

第三行穿过RewriteRule定义防盗链文件的后缀,此处仅是图片后缀,必要的能够增加mp3,rar等其它所有后缀。后边的/block.gif表示假使遇上这些后缀的文件被盗链后的转向,此地转向/根目录的block.gif,能够是HTML等任何文件。万一只想某个文件夹下面的文件不被盗链,只必要加登程径就可以。譬如不想images和pic目录下的文件被盗,但其它能够。即将修改成:

以上关于RewriteCond和RewriteRule的作用仅是本人的土法领会,迎接在这方面有专业琢磨的友人在评价中指正,省得误导,此外万一遭到isapi-rewrite版本问题,但凡保障后边的正则式写法准确就行。

\ 表示转义记号,譬如网址中的.是规定内置的计算标记,要把它穿过\转义成字符。

相关日志

Reader's Comments

  1. |

    防盗链还是的买软件好些

Leave a Comment