yslow说etags配置错误。如何在IIS7上正确配置etag?


20

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

Answers:



12

只要您不从多个服务器提供内容,Etag就可以。如果仅从一台服务器提供服务,则将其保留在那里。他们没有受伤。如果您不希望YSlow抱怨它们,请单击“ 规则集”选择元素附近的“ 编辑”按钮,然后编辑YSlow(V2)配置文件。只需取消选中“配置实体标签(Etags)”选项。


7
+1 YSlow抱怨很多事情不会影响“凡人”的​​网站。(没有YSlow,我没有CDN,也不需要CDN。请已经不再抱怨了。)
Gerald Combs 2010年

规则集更改为真。
MikeJ 2012年

11

YSlow并不是在抱怨他们错了(即使这就是它的意思),而是在抱怨不需要它们。使YSlow关闭的唯一方法是禁用它们。

好消息是,我今天早些时候自己做了!

打开IIS管理器,单击服务器,然后转到HTTP响应标头。单击“添加...”按钮,然后在名称下输入:

ETag

(区分大小写)。在值下,输入

""

(即两个双引号)

和ETags在一起!


正如其他人指出的那样,只有在知道需要时才应删除ETag。在许多情况下,情况并非如此。
鲍比·杰克

1
可能是这种情况,但事实是答案正确回答了问题。
Mark Henderson

1
问题是“如何使IIS7正确发行这些标签?”。您的答案是完全停止发行ETag,这可能会降低性能,并且可能是不必要的(问题中没有提及CDN的使用)。
鲍比·杰克

2
@Bobby:OP隐式地询问“如何让IIS7正确发布YSlow定义的这些etag ?”。就YSlow而言,唯一的“正确”配置是禁用它们。
基普(Kip)2010年

1
@Kip,不,隐式部分是隐式的,您无法猜测。但是,假设OP是一个合理的人,他可能想说:“根据YSlow,配置似乎不是最佳选择,我如何使其达到最佳?” -然后这个答案有点有趣。就像“为什么我的单元测试会抱怨?” -“只需删除单元测试,它就不会再抱怨了!”
chiccodoro


3

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

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

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

IIS 7将覆盖自定义标头,以及有关同一问题的各种其他答案中提出的所有其他解决方案。出站规则是唯一可行的项目,因为它会覆盖返回给用户之前设置的所有内容。提议的出站规则匹配任何命名的服务器变量RESPONSE_ETag,只要的值RESPONSE_ETag具有一个或多个字符并将该值重写为空字符串即可。



1

最好使用这个:

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

3
欢迎来到服务器故障!虽然魔术字节肯定不错,但是如果您解释为什么这样做是正确的,那么对于其他人来说还是很棒的。
Falcon Momot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.