检查Windows服务器上的HTTP_REFERER

时间:2012-10-10 11:02:22

标签: .htaccess iis http-referer

我目前正在从Linux(Apache)服务器迁移到Windows(IIS)。在Linux上我使用.htaccess文件来检查HTTP_REFERER值,以确保我们的文件只从我们的站点加载,而不是从其他站点链接:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?foo.com [NC]
RewriteRule \.(dcr)$ - [NC,F,L]

如何在Windows机器上完成此操作? (Windows Server 2008 R2,IIS 7)

1 个答案:

答案 0 :(得分:1)

在以下位置查看第6点:

http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx

简而言之,您需要安装IIS URL Rewrite加载项并创建一个类似于以下内容的规则:

<rule name="Prevent image hotlinking">
  <match url=".*\.(gif|jpg|png)$"/>
  <conditions>
    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
    <add input="{HTTP_REFERER}" pattern="^http://foo\.com/.*$" negate="true" />
  </conditions>
  <action type="Rewrite" url="/images/say_no_to_hotlinking.jpg" />
</rule>

您的规则当然可能略有不同。使用URL Rewrite,您还可以获取当前的.htaccess规则并将其直接导入为新规则。它会为您处理翻译,但根据您的目标,您可能需要对生成的结果规则进行一些小的更改。

希望有所帮助。