如何防止IIS中的条件GET?

我被要求find一种防止IIS进行条件GETS的方法(所以Web服务器将总是返回200 OK或错误,如果有的话)。 有没有办法做到这一点?

我在Windows Sever 2003中使用IIS 6。

条件GET是HTTP 1.1标准的一部分。 IIS不能专门禁用它,但是可以编写一个ISAPIfilter去除条件请求头文件:If-Modified-Since,If-Unmodified-Since,If-Match,If-None-Match,If-Range

我不知道有一个可用的包可以做到这一点,所以你可能不得不推出自己的。

IIRF是IIS的免费URL重写器,可以使用RewriteHeader指令重写头文件。 它看起来像这样:

RewriteCond %{HTTP_IF_MODIFIED_SINCE} ^.+$ RewriteHeader HTTP_IF_MODIFIED_SINCE: .* $1 

基本上说,如果“If-Modified-Since”头是非空的,重写它没有任何东西 。 你将不得不为其他标题有类似的规则。

在线查看文档以查找IIRF 。

这篇文章描述了如何在iis 5和iis 6中构build条件获取(或不包括)。您可以设置两个Web服务器并强制它们的ETag值不同,然后确保每个请求在两个服务器之间来回跳动。 这样,你应该总是得到200 OK的响应,浏览器不会使用caching。

显然这对性能不利,因为它使得Web服务器即使在不需要时也始终提供资源。