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

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Prevent hotlinking">
<match url="^.*\.(jpg|bmp|rar|zip)$" ignoreCase="true" />
<conditions>
<add input="{HTTP_REFERER}" pattern="http://beikeit.com/.*" negate="true" />
<add input="{HTTP_REFERER}" pattern="http://www.beikeit.com/.*" negate="true" />
</conditions>
<action type="Rewrite" url="/404.htm" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

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

<configuration>

后面直接添加一下代码:
 

<system.webServer>
    <rewrite>
      <rules>
        <rule name="Prevent hotlinking">
          <match url="^.*\.(jpg|bmp|rar|zip)$" ignoreCase="true" />
          <conditions>
            <add input="{HTTP_REFERER}" pattern="http://beikeit.com/.*" negate="true" />
            <add input="{HTTP_REFERER}" pattern="http://www.beikeit.com/.*" negate="true" />
          </conditions>
          <action type="Rewrite" url="/404.htm" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>

 

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


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


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
        </staticContent>
        <rewrite>
            <rules>
        <rule name="RequestBlockingRule1" enabled="true" stopProcessing="true">
            <match url=".*" />
            <conditions>
            <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
            <add input="{HTTP_REFERER}" matchType="Pattern" pattern="^http://(.*\.)?(test\.com)/.*$" ignoreCase="true" negate="true" />
            <add input="{HTTP_REFERER}" matchType="Pattern" pattern="^http://(.*\.)?(beikeit\.com)/.*$" ignoreCase="true" negate="true" />
            </conditions>
            <action type="CustomResponse" statusCode="404" />
        </rule>
                <rule name="Readme" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url="rm" />
                    <action type="Rewrite" url="readm2e.txt" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


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