2012-05-30 2 views
0

В IIS 7.5 вы можете добавлять статические заголовки HTTP-ответа, но я хочу добавить заголовок «Expires», который всегда указывает дату, которая составляет 7 дней в будущем.IIS 7.5 Как добавить динамический заголовок HTTP Expires

Я запускаю php 5.4, поэтому я хотел бы, чтобы решение, которое может сделать это, редактировало файл web.config, а не какое-то решение для кода C#.

Я знаю, как добавить заголовок, используя php, но это не поможет для HTTP-заголовков статического изображения (jpg, gif, png и т. Д.).

Заголовок должен выглядеть примерно так:

Expires: Thu, 31 May 2012 10:59:25 GMT

Как я могу сделать это динамически всегда показывают дату и время 7 дней в будущем ?

Edit:

Обратите внимание, что у меня есть заголовок Expires, что я хочу на моих PHP файлов:

http://web-sniffer.net/?url=http%3A%2F%2Fwww.bestds.com

Однако, я не в состоянии указать дату, на 7 дней вперед для «Expires» ключ на PNG файлов (к примеру), мне приходится использовать статическую дату далеко в будущем:

http://web-sniffer.net/?url=http%3A%2F%2Fwww.bestds.com%2Fimage%2Ftlogo.png

ответ

6

Это стандартная функция IIS. Модуль HTTP Response Headers позволяет вам установить этот общий заголовок. Это приводит к следующему web.config:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <staticContent> 
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Вы должны сделать это только в каталогах, где вы хотите, этот заголовок будет отправить. Обычно это только каталоги со статическим контентом.

+0

См. Редактирование в сообщении выше. Я специально хочу добавить заголовок «Expires»; Я уже использую максимальный возраст; Я хочу оба. –

+1

Извините, мой плохой, но IIS не предоставляет механизм для динамического определения этого параметра. Вы можете установить его, но только фиксированную дату/время. Однако заголовок 'Cache-Control'' max-age' и заголовок 'Expires' имеют одинаковый эффект в браузере. Заголовок 'Expires' - это функция HTTP/1.0, а' Cache-Control' - это функция HTTP/1.1. Но, насколько я знаю, заголовок 'Cache-Control' поддерживается всеми распространенными браузерами и серверами прокси-кэша, поэтому безопасно использовать/полагаться на него. –

+0

Можно ли установить какое-либо значение для чего-то динамического в файле web.config. Я выяснил способ добавления заголовков к конкретным типам файлов с использованием модуля перезаписи, но все же я не могу установить значение «теперь плюс 7 дней». –

0

Вы можете добавлять только динамический заголовок expires, используя программный код.

Источник: The Microsoft IIS Site

Вы должны использовать Cache-Control максимального возраста, а не, как это предлагается в другой ответ.

Смежные вопросы