- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章IIS防盗链 ISAPI Rewrite图片防盗链规则写法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
通过G.CN和B.CN搜索后得出了几种不同的方案,例如网站程序的URL伪装法、服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现我的防盗链“梦想”。 为什么说是梦想呢?首先表示惋惜,懒人我搜来了一大票经过无数次转载而来的文章,把现呈的代码应用后发现要么根本不起作用,要么就是效果达不到我想要的,几经周折后终于把这原本认为可以轻易借鉴照搬的防盗链给完成了,恨那些只会转载和伪原创的站长们,自己也不试试就拿来填充,害了多少人浪费了大把的时间。 经过恶补正则表达式相关教程并对前辈们留下的规则进行修改后,以下ISAPI Rewrite已经在我的服务器上正常运作。 经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常。 详细如下; 1、完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面) 代码:
复制代码 代码如下
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版本问题,只要保证后面的正则式写法正确就行。 2、排除性防盗链写法 代码:
复制代码 代码如下
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 第四行同上 这样说明应该不难理解吧,直接拿去用,按着原有格式改。 规则中出现的正则表达式符号小解: . 表示匹配除换行符以外的任意字符 + 表示前面的字符可以出现一到任意多次 * 表示前面的字符可以出现零到任意多次 () 表示一个表达组,可以拿它和加减乘除法一起理解 ?! 表示断言这个符号后面的字符如果出现则不再进行接下去的匹配 \ 表示转义符号,比如网址中的.是规则内置的运算符号,要把它通过\转义成字符。 | 表示或者,用于连接多种可能 通过以上这“乱七八糟”的符号,竟然组成了如此强大的规则,感叹! 。
最后此篇关于IIS防盗链 ISAPI Rewrite图片防盗链规则写法的文章就讲到这里了,如果你想了解更多关于IIS防盗链 ISAPI Rewrite图片防盗链规则写法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
ISAPI 过滤器是附加到 IIS Web 服务器的 w3wp 进程的 dll。 ISAPI 过滤器必须强制导出两个函数即。 HttpFilterProc 和 GetFilterVersion。我已经
我想要尽可能小的服务器,而不是一个完整的开源 isapi 服务器,它是用于学习目的而不是用于实际使用。在 google 上找不到任何内容。 最佳答案 我猜您想在 Windows 上进行一些 PHP 开
什么是 ISAPI 或 ISAPI 扩展或过滤器?我读得越多,我就越困惑。 最佳答案 参见例如这里:http://searchwindowsserver.techtarget.com/definiti
我有一个已配置的 IIS 6,其中已经定义了一个页面,该页面使用 ISAPI dll 将传入请求重定向到底层 tomcat。现在我想添加一个新页面并为此页面使用它自己的 isapi dll,但这对我来
REWRITE伪静态 1、Apache配置: 进入/etc/httpd/conf/目录下,打开httpd.conf文件。 启用rewrite # LoadModule rewrite_modul
在我的网站上,我有这样的 URL: http:// www.domain.com/something-like-page-title-4en 使用 ISAPI 重写器(Ionics Isapi 重写过
想知道是否有人知道或有过调试一组 isapi 重写规则的经验? 我有相当多的规则集,因此手动检查它们并不容易。所以我想知道是否有任何测试工具可用于放入您的规则并传入 URL,并查看匹配的规则是什么以及
通过G.CN和B.CN搜索后得出了几种不同的方案,例如网站程序的URL伪装法、服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在
在IIS下实现动态网页静态化的方法有两种: 1 升级到IIS7-如果你的服务器不是Windows 2008,那么你只能放弃。 2 使用三方插件-最可靠的就是ISAPI Rewrite了,所以本教程着
namespace Project.ISAPI.ProjectFolderWithServices.Solution namespace Project.ProjectFolderWithServic
在 IIS6 中是否有使用 ISAPI 过滤器/扩展的理由?使用 httphandler/http 模块无法实现相同的功能。同样在 IIS7 中是否完全删除了 ISAPI?是用.Net编写的IIS7的
场景: 客户端通过 POST 向 IIS 7.5 服务器发出 ISAPI 调用 - 该调用将生成要分发给众多用户的关键任务输出。 (在本例中使用 Delphi XE 和 Indy 9 HTTP 客户端
我在 Delphi 中创建了一个 ISAPI 扩展,它工作得很好,但我想知道是否有关于如何存储配置设置的最佳实践?我可以想出很多方法来做到这一点,但我当然希望以最好的方式做到这一点。我可能找错了地方,
我有一个 isapi 文件管理器,我想添加一个基于传入域的逻辑(我的服务器场托管许多域)。域列表是动态的,我可以将这些域列表导出到一个文本文件中并从 isapi 中读取它,但是有没有办法将这个文件保存
我的正则表达式不是很好,我在这里挣扎。我需要正则表达式来从这两种格式中获取标题: http://domain.com/blog/title http://secure.com/domainkey/bl
我想开发一个 ISAPI 过滤器,它将读取 URL 的 header ,这将与 ASP .NET 应用程序对话。这可以在 C# 中实现,还是我需要在 C++ 中开发它,并创建一个 CLI/C++ DL
我想从 ISAPI 中的请求中检索整个客户端证书链。 我已经通过调用下面的代码成功获得了客户端证书链中的第一个证书: LPEXTENSION_CONTROL_BLOCK ecb_; ... CERT_
为了便于搜索引擎抓取(换句话就是假静态),下面是URL ReWrite的规则,效果看我的chinadigger的链接地址。我目前的Rewrite规则: 复制代码 代码如下:
我正在支持另一个开发人员开发的经典 asp 应用程序。此应用程序将面向公众。在公开之前,我们的网络团队进行了安全扫描并发现了一些问题。他们提到的其中一个问题如下: Fix Microsoft IIS
我必须制作一个面向公众的 Web 应用程序,它可以处理动态页面、 session 和提供文档。我主要关心的是可扩展性、性能(大约 1000 个用户/小时)和安全性。 我查看了 ISAPI 扩展 (II
我是一名优秀的程序员,十分优秀!