Apache: как добавить заголовки Expires в файлы без установленного mod_expires

Я на общем хосте с Apache. Видимо mod_expires не установлен. Есть ли другой способ добавить заголовки с истекающим сроком действия в css-файлы, изображения и т. д. в этой среде?


person Hedge    schedule 24.11.2010    source источник
comment
Каким директивам вы хотите подражать?   -  person Gumbo    schedule 24.11.2010


Ответы (3)


В вашем .htaccess (если это возможно) вы можете использовать блок <FilesMatch>< /a> с директивами Header. Однако для этого требуется mod_headers, и я почти уверен, что вы не можете указать "скользящую" дату истечения срока действия (т. е. "через год"). Поэтому вам потребуется изменить этот параметр, скажем, раз в год1.

Кроме того, вы видели этот вопрос?


1) По-видимому, вам следует воздержаться от установки Expires на более чем год вперед: "Не устанавливайте для него [заголовок Expires] значение более чем на один год в будущем, так как это нарушает рекомендации RFC." (источник: Оптимизировать кэширование< /а>)

person jensgram    schedule 24.11.2010
comment
Это сработало. Большое спасибо. Я не против редактировать его раз в год. - person Hedge; 24.11.2010
comment
@Hedge Отлично, в конце концов, это легко исправить. - person jensgram; 25.11.2010

Вы можете использовать PHP для встраивания заголовков истечения срока действия,
он не эффективен, как apache mod_expires,
но, по крайней мере, он все еще может использоваться для подготовленного кеша.

Использование заголовка Expires в далеком будущем влияет на просмотры страниц только после того, как пользователь уже посетил ваш сайт. Это не влияет на количество HTTP-запросов, когда пользователь впервые посещает ваш сайт, а кеш браузера пуст. Поэтому влияние этого улучшения производительности зависит от того, как часто пользователи заходят на ваши страницы с подготовленным кешем. («Заполненный кэш» уже содержит все компоненты страницы.) Мы измерили это в Yahoo! и обнаружил, что количество просмотров страниц с заполненным кешем составляет 75-85%. Используя заголовок Expires из далекого будущего, вы увеличиваете количество компонентов, которые кэшируются браузером и повторно используются при последующих просмотрах страниц, не отправляя ни одного байта через интернет-соединение пользователя.

источник: http://developer.yahoo.com/performance/rules.html#expires

person ajreal    schedule 24.11.2010

Просто отправьте Заголовок самостоятельно, используя заголовок()

header("Expires: Thu, 01 Dec 1994 16:00:00 GMT", true);

Редактировать: не видел, что изображения... также упоминаются. Это работает только для файлов php или всего, что вы передаете через php, что в большинстве случаев не очень хорошая идея.

person KingCrunch    schedule 24.11.2010