yslow说etagsconfiguration错误。 如何在IIS7上正确configurationetags?

在我支持的网站上运行ySlow,我注意到它报告说网站图片的etagsconfiguration错误(例如* .jpg,* .png,* .gif)。 任何人都可以帮助解释我必须做什么才能让IIS7正确地发布这些etags?

    Farseeker接受的答案是行不通的。 我已经在Windows Server 2008 Standard SP 2上的IIS 7.0.6000.16386中对此进行了testing。

    对于同一个问题,请参阅Jeff Atwood 对Stack Overflow的评论。

    YSlow并不是抱怨他们错了(即使这就是它所说的),但是他们抱怨说他们不需要。 让YSlow闭嘴的唯一方法就是禁用它们。

    好的是,我今天早些时候就是这样做的!

    打开你的IISpipe理器,点击服务器,然后转到HTTP响应头。 点击“添加…”button,在名称下input:

    ETag 

    (区分大小写)。 在价值下,input

     "" 

    (那两个双引号)

    和ETags粗心大意!

    只要不从多个服务器提供内容,Etags就可以。 如果您只从一台服务器提供服务,请将其留在那里。 他们不伤害。 如果您不希望YSlow投诉他们,请点击规则集select元素附近的编辑button,然后编辑YSlow(V2)configuration文件。 只需取消选中“configuration实体标签(Etags)”选项。

    看到一个类似的StackOverflow问题。

    在iis 6中,您可以为'ETag'=“”添加自定义标题

    在iis 7中,添加出站重写规则如下:

     <outboundRules> <rule name="Remove ETag"> <match serverVariable="RESPONSE_ETag" pattern=".+" /> <action type="Rewrite" value="" /> </rule> </outboundRules> 

    IIS 7将会覆盖自定义的头文件,以及针对相同问题提出的所有其他解决scheme。 出站规则是似乎工作的唯一项目,因为它会覆盖返回给用户之前设置的任何内容。 只要RESPONSE_ETag的值有一个或多个字符,并将值重写为空string,此build议的出站规则将匹配任何名为RESPONSE_ETag服务器variables。

    有关部分解决scheme,请参阅IIS7中“设置服务器响应头”的答案。 是的,一个完整的解决scheme将是非常好的,但我会尽我所能。

    最好使用这个:

     <outboundRules> <rule name="Remove ETag"> <match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" /> <action type="Rewrite" value="{R:1}" /> </rule> </outboundRules>