サポートしているWebサイトでySlowを実行していると、サイトの画像(* .jpg、*。png、*。gifなど)のetagが正しく構成されていないことが報告されていることに気付きました。 IIS7がこれらのetagsを正しく発行するために私がしなければならないことを誰かが説明してくれるでしょうか?
Farseekerが承認した回答は機能しません。私はこれをIIS 7.0.6000.16386 on Windows Server 2008 Standard SP 2。
Jeff Atwoodのコメント 同じ質問についてはStack Overflowで を参照してください。
複数のサーバーからコンテンツを提供しない限り、etagは問題ありません。 1つのサーバーからのみサービスを提供する場合は、そのままにしておきます。彼らは傷つけません。そして、YSlowがそれらについて文句を言いたくない場合は、Rulesets選択要素の近くにあるEditボタンをクリックし、YSlow(V2)プロファイルを編集します。 [エンティティタグ(Etags)の構成]オプションをオフにします。
YSlowはそれらが間違っているとは言っていませんが(それが言っていることですが)、それはそれらが必要ではないと言っています。これについてYSlowを終了させる唯一の方法は、それらを無効にすることです。
良いことは、私が今日自分でこれをやったことです!
IISマネージャーを開き、サーバーをクリックして、HTTP応答ヘッダーに移動します。[追加...]ボタンをクリックし、名前の下に次のように入力します。
ETag
(大文字と小文字を区別)。値の下に、
""
(それは2つの二重引用符です)
そして、ETagがなくなりました!
同様の 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
の値に1つ以上の文字が含まれ、値を空の文字列に書き換える限り、RESPONSE_ETag
という名前のすべてのサーバー変数に一致します。
部分的な解決策については、 IIS7のサーバー応答ヘッダーの設定 の回答を参照してください。はい、完全な解決策は本当に素晴らしいですが、私は私が得ることができるものを取ります。
これを使うほうがいい:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
</outboundRules>