浏览 1194 次 / [ 天下网闻 ] Windows主机iis7配置web.config防盗链教程-域名级根治
  • 发布时间 2021-04-23 18:24
  • 安防工具频繁的盗链提醒,虽然都已被成功拦截,但是看着N多提醒记录比较郁闷,一个个拉黑IP又过于麻烦,找到以下方式得以解决,用的第一招第二招的方式,底部“更好的代码”的方式还没尝试。

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    前两天折腾完wordpress在linux系统apache环境下到防盗链,今天突然想起来自己还有个Godaddy的windows主机上的博客(爱珠宝),所以也折腾一下windows主机iis7配置web.config防盗链吧。
    第一招    网站根目录新建一个文件,命名为:web.config,输入以下代码:


    1. <configuration>

    2. <system.webServer>

    3. <rewrite>

    4. <rules>

    5. <rule name="Prevent hotlinking">

    6. <match url="^.*\.(jpg|bmp|rar|zip)[        DISCUZ_CODE_0        ]quot; ignoreCase="true" />

    7. <conditions>

    8. <add input="{HTTP_REFERER}" pattern="http://beikeit.com/.*" negate="true" />

    9. <add input="{HTTP_REFERER}" pattern="http://www.beikeit.com/.*" negate="true" />

    10. </conditions>

    11. <action type="Rewrite" url="/404.htm" />

    12. </rule>

    13. </rules>

    14. </rewrite>

    15. </system.webServer>

    16. </configuration>
    复制代码

    第二招    如果已经有web.config文件,则在

    <configuration>

    后面直接添加一下代码:


    1. <system.webServer>

    2.     <rewrite>

    3.       <rules>

    4.         <rule name="Prevent hotlinking">

    5.           <match url="^.*\.(jpg|bmp|rar|zip)[        DISCUZ_CODE_1        ]quot; ignoreCase="true" />

    6.           <conditions>

    7.             <add input="{HTTP_REFERER}" pattern="http://beikeit.com/.*" negate="true" />

    8.             <add input="{HTTP_REFERER}" pattern="http://www.beikeit.com/.*" negate="true" />

    9.           </conditions>

    10.           <action type="Rewrite" url="/404.htm" />

    11.         </rule>

    12.       </rules>

    13.     </rewrite>

    14. </system.webServer>
    复制代码

    文件中设置了只允许beikeit.com、www.beikeit. com(也就是你自己允许调用内容的网站)调用网站的jpg、bmp、rar、zip类型的文件,若来源并非以上三个网站则网页则跳转至404.htm页面。对于图片等其他文件同样适用,可以根据自己的需要进行修改添加所要防止盗链到文件格式。



    不得不说下还有一种更好的代码,判断更优秀


    1. <?xml version="1.0" encoding="UTF-8"?>

    2. <configuration>

    3.     <system.webServer>

    4.         <staticContent>

    5.             <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />

    6.         </staticContent>

    7.         <rewrite>

    8.             <rules>

    9.         <rule name="RequestBlockingRule1" enabled="true" stopProcessing="true">

    10.             <match url=".*" />

    11.             <conditions>

    12.             <add input="{HTTP_REFERER}" pattern="^[        DISCUZ_CODE_2        ]quot; negate="true" />

    13.             <add input="{HTTP_REFERER}" matchType="Pattern" pattern="^http://(.*\.)?(test\.com)/.*[        DISCUZ_CODE_2        ]quot; ignoreCase="true" negate="true" />

    14.             <add input="{HTTP_REFERER}" matchType="Pattern" pattern="^http://(.*\.)?(beikeit\.com)/.*[        DISCUZ_CODE_2        ]quot; ignoreCase="true" negate="true" />

    15.             </conditions>

    16.             <action type="CustomResponse" statusCode="404" />

    17.         </rule>

    18.                 <rule name="Readme" patternSyntax="ECMAScript" stopProcessing="true">

    19.                     <match url="rm" />

    20.                     <action type="Rewrite" url="readm2e.txt" />

    21.                 </rule>

    22.             </rules>

    23.         </rewrite>

    24.     </system.webServer>

    25. </configuration>
    复制代码

    上面的实例中只有用test.com和beikeit.com来访问这个网站的时候,资源才会正常显示。
    底下那个规则是把url中有rm的都映射到readm2e.txt文件中输出。


    转自:https://beikeit.com/post-420.html  感谢!