запустив ySlow на поддерживаемом мною веб-сайте, я заметил, что он сообщил, что etags неправильно настроены для изображений сайта (например, * .jpg, * .png, * .gif). Может ли кто-нибудь помочь объяснить, что мне нужно сделать, чтобы IIS7 правильно выдал эти теги?
Etags в порядке, если вы не обслуживаете контент с нескольких серверов. Если вы обслуживаете только один сервер, оставьте их там. Они не болят. И если вы не хотите, чтобы YSlow жаловался на них, нажмите редактировать кнопка рядом с Наборы правил выберите элемент и отредактируйте профиль YSlow (V2). Просто снимите флажок «Настроить теги объекта (Etags)».
YSlow не жалуется на то, что они неправы (хотя это то, что он говорит), но жалуется, что они не нужны. Единственный способ заставить YSlow заткнуться по этому поводу - отключить их.
Хорошо, что я сделал это сам сегодня!
Откройте диспетчер IIS, щелкните сервер и перейдите к заголовкам ответа HTTP. Нажмите кнопку «Добавить ...» и под именем введите:
ETag
(чувствительный к регистру). В поле "Значение" введите
""
(это две двойные кавычки)
И ETags прочь!
Принятый ответ Farseeker не работает. Я тестировал это в IIS 7.0.6000.16386 на Windows Server 2008 Standard SP 2.
См. Комментарий Джеффа Этвуда на Stack Overflow по тому же вопросу.
В 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>