回答:
Farseekerが受け入れた回答は機能しません。これをWindows Server 2008 Standard SP 2上のIIS 7.0.6000.16386でテストしました。
同じ質問については、スタックオーバーフローに関するジェフアトウッドのコメントを参照してください。
複数のサーバーからコンテンツを提供しない限り、Etagは問題ありません。1つのサーバーからのみサービスを提供する場合は、そのままにしておきます。けがをしません。YSlowに文句を言わせたくない場合は、ルールセット選択要素の近くにある[ 編集 ]ボタンをクリックして、YSlow(V2)プロファイルを編集します。[エンティティタグ(Etags)の構成]オプションをオフにします。
YSlowは、彼らが間違っていると不平を言っているわけではありません(それが言っていることですが)が、不必要だと不平を言っています。これについてYSlowを黙らせる唯一の方法は、それらを無効にすることです。
良いことは、今日これを自分でやったことです!
IISマネージャーを開き、サーバーをクリックして、HTTP応答ヘッダーに移動します。[追加...]ボタンをクリックし、名前の下に次のように入力します。
ETag
(大文字と小文字を区別)。値の下に、入力します
""
(つまり、2つの二重引用符)
そして、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は、カスタムヘッダー、および同じ問題に関する他のさまざまな回答で提案されている他のすべてのソリューションを上書きします。アウトバウンドルールは、ユーザーに返される直前に設定されたものを上書きするため、機能すると思われる唯一のアイテムです。この提案されたアウトバウンドルールRESPONSE_ETag
は、の値にRESPONSE_ETag
1つ以上の文字が含まれている限り、指定されたサーバー変数と一致し、値を空の文字列に書き換えます。
部分的な解決策については、IIS7のサーバーの応答ヘッダーの設定に対する回答を参照してください。はい、完全な解決策は本当に素晴らしいでしょうが、私は得ることができるものを取ります。
これを使用する方が良い:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
</outboundRules>