Ответы:
Принятый ответ Farseeker не работает. Я проверял это в IIS 7.0.6000.16386 на Windows Server 2008 Standard SP 2.
См. Комментарий Джеффа Этвуда о переполнении стека по тому же вопросу .
Этаги в порядке, если вы не обслуживаете контент с нескольких серверов. Если вы обслуживаете только с одного сервера, оставьте их там. Они не болят. И если вы не хотите, чтобы YSlow жаловался на них, нажмите кнопку « Изменить» рядом с элементом выбора наборов правил и отредактируйте профиль YSlow (V2). Просто снимите флажок «Настроить теги сущностей (Etags)».
YSlow не жалуется, что они не правы (хотя это то, что говорится), но жалуется, что они не нужны. Единственный способ заставить YSlow замолчать об этом - это отключить их.
Хорошо, что я сделал это сам сегодня раньше!
Откройте диспетчер IIS, нажмите на сервер и перейдите к заголовкам ответа HTTP. Нажмите кнопку «Добавить ...» и под именем введите:
ETag
(деликатный случай). Под значением введите
""
(вот две двойные кавычки)
И 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
имеет один или несколько символов, и перезаписывает значение в пустую строку.
Пожалуйста, посмотрите ответ на Установить заголовок ответа сервера в IIS7 для частичного решения. Да, полное решение было бы действительно хорошо, но я возьму то, что смогу получить.
Лучше использовать это:
<outboundRules>
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern="(.*)\:(.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
</outboundRules>