在我支持的网站上运行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>