前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >巧用ISAPI_Rewrite规则写IIS防盗链

巧用ISAPI_Rewrite规则写IIS防盗链

作者头像
全栈程序员站长
发布2022-09-15 15:13:45
4470
发布2022-09-15 15:13:45
举报
文章被收录于专栏:全栈程序员必看

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

巧用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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档