巧用ISAPI_Rewrite规则写IIS防盗链

巧用ISAPI_Rewrite规则写IIS防盗链巧用ISAPI_Rewrite规则写IIS防盗链关键是httpd.ini的设置首先,必须要保证httpd.ini有可写权限,设置isapi_rewrite安装文件夹IIS_来宾,IIS_进程读写权限。httpd.ini默认设置如下:RewriteCondHost:(.+)RewriteCondReferer:(?!http:///1.*).*我们在它后面加上一句Rewr

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

巧用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.net/163491.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二叉树的层序遍历(两种方法实现)

    二叉树的层序遍历(两种方法实现)两种方法实现二叉树的层序遍历1、说明二叉树的层序遍历是面试经常会被考察的知识点,甚至要求当场写出实现过程。层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数据。如下图:先序遍历:A→B→D→C中序遍历:B→D→A→C后续遍历:D→B→C→A层序遍历:A→B→C→…

    2022年5月11日
    36
  • pycharm如何使用pyinstaller_python的pyinstaller用法

    pycharm如何使用pyinstaller_python的pyinstaller用法在pycharm里面安装pyinstaller直入正题之前,我们得先在pycharm上安装好这个插件。按照下图所示方法打开terminal(这个我感觉相当于你电脑运行cmd),随后你还是得找到你的python安装路径,C盘的话好像直接使用指令:pipinstallpyinstaller,D盘的话就要找到目录进行安装。python3的版本可以试着吧指令换为:pip3installpyinstaller问题引出之前我在电脑上用python搞了一个小程序(很简单的,就不细讲),但是等到我

    2022年8月28日
    0
  • 超级文本编辑器Sublime Text3「建议收藏」

    超级文本编辑器Sublime Text3「建议收藏」简介基础插件Package-Control中文乱码Ubuntu下输入中文输入法跟随光标在SublimeText中运行脚本解释器文件路径补全表格编辑语法高亮与着色代码匹配高亮BracketHighlighter代码布局Alignment代码对比sublimergeCompareSide-By-Side代码模板专用插件ForLua…

    2022年5月31日
    122
  • java全局变量引起的并发问题「建议收藏」

    java全局变量引起的并发问题「建议收藏」最近刚完成了一个短彩信群发平台的开发工作,系统采用springmvc+hibernate+jdbctemplate+mysql架构。其中遇见许多问题,闲暇之余记录下来以避免在后续项目中再犯同样的错误。先看下面小段代码,一个controller,一个service。       controller.java代码:    ……..    @Autowired

    2022年8月21日
    6
  • IplImage中的widthStep大小计算及原理[通俗易懂]

    IplImage中的widthStep大小计算及原理[通俗易懂]一直以为IplImage结构体中的widthStep元素大小等于width*nChannels,大错特错!查看OpenCV2.1的源码,在src/cxcore/cxarray.cpp文件中,找到cvInitImageHeader函数,函数中对widthStep大小赋值如下:image->widthStep=(((image->width*image->nChannels*

    2022年4月30日
    48
  • pycharm怎么安装python_pycharm环境配置教程

    pycharm怎么安装python_pycharm环境配置教程1.pycharm的下载,到pycharm官方网站进行下载点击tools选择自己要下载的pycharm的版本2.下载完成安装以后如图所示:创建一个快捷方式,以便打开3.根据安装的提示一步一步往下走就可以了4.Python下载:4.1到Python官网下载Python我下载的是3.9.6版本的Python4.2安装时记得点击path的那个选项,这样就不用了自己去环境那边配置了4.3安装完成以后,在命令提示行下检查一下是否安装成功…

    2022年8月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号