巧用ISAPI_Rewrite规则写IIS防盗链

2022-09-15 15:13:45 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

巧用ISAPI_Rewrite规则写IIS防盗链

关键是httpd.ini的设置 首先,必须要保证httpd.ini有可写权限,设置isapi_rewrite安装文件夹IIS_来宾,IIS_进程读写权限。 httpd.ini默认设置如下:

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

我们在它后面加上一句

RewriteRule .*/.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

即可实现gif/jpg/png/exe/rar/zip文件的防盗链,盗链页面显示的是/block.gif(改图片放到你要做防盗链的站的目录下)。block.gif是一个体积较少的图片文件,我们可以在上面打上自己网站的版权标志和防盗链声明。 如果按照上面设置,则除本站以外的所有网站均不能使用这里的图片,如果要允许一些例外的网站比如google,baidu以及其它一些非营利性网站引用该怎么办呢?我们可以用如下正则表达式来实现

RewriteCond Referer: (?!http://(?:www/.uurenti/.com|www/.google/.com|www/.baidu/.com)).

如果想允许所有google子站和baidu子站形如images.baidu.com,images.google.com等站则做如下设置:

RewriteCond Referer: (?!http://(?:*/.uurenti/.com|uurenti/.com|*/.google/.com|google/.com|*/.baidu/.com|baidu/.com)).

至此,一个相当有效的防盗链系统已经出来了,但如上设置有一个问题,如果浏览者浏览了盗链页面后访问本站页面,则被盗链图片的缓存会影响图片的正常显示。把

RewriteRule .*/.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

改为

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

方可。参数N的意思是重新从站点请求文件而不是从本地缓存读取。

最后,你如果想那个站点放盗链,那只需要到IIS下该站点属性—ISAPI筛选器—添加……REWRITE.DLL(在你的安装目录下)

然后重新启动IIS!

转自:http://2seu.com/yeguizu/Article/xingwei/200810/150.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163491.html原文链接:https://javaforall.cn

0 人点赞