Как мне настроить apache - у которого нет mod_expires или mod_headers - для отправки заголовков с истечением срока действия? - PullRequest
2 голосов
/ 25 мая 2009

Веб-сервер, на котором размещен мой сайт, не возвращает последние измененные заголовки или заголовки с истекшим сроком действия. Я хотел бы исправить это, чтобы обеспечить кэширование моего веб-содержимого.

У меня нет доступа к файлам конфигурации apache, потому что сайт размещен в общей среде, которую я не могу контролировать. Однако я могу сделать настройки через файл .htaccess. Сервер - apache 1.3 - не настроен с mod_expires или mod_headers, и компания не установит их для меня.

С учетом этих ограничений, какие у меня варианты?

Извините за пост здесь. Я признаю, что этот вопрос не является строго вопросом программирования, а скорее вопросом системного администратора. Когда сообщение об ошибке сервера будет общедоступным, я постараюсь направить туда вопросы такого рода.

1 Ответ

3 голосов
/ 25 мая 2009

Какой контент? Если статический (HTML, изображения, CSS), то действительно единственный способ присоединить заголовки - через интерфейсный веб-сервер. Я удивлен, что в хостинговой компании не включены mod_headers, хотя они могут не включить его для .htaccess. Им не нужно кэшировать больше пропускной способности и ресурсов процессора (т. Е. Денег).

Если это динамический контент, то вы будете иметь контроль при создании страницы. Это будет зависеть от вашего языка; Вот пример для PHP (это из руководства по PHP, и это плохой пример, так как он также должен установить код ответа):

if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

Да, и одна вещь об установке заголовков кэширования: не устанавливайте их слишком долго, особенно для CSS и сценариев. Возможно, вы не думаете, что хотите изменить их, но вы не хотите, чтобы сломанный сайт был в то время, как люди все еще имеют старый контент в своих браузерах. Я бы порекомендовал максимальные настройки кэша в диапазоне 4-8 часов: хорошо для сеанса одного пользователя или рабочего дня, но не намного.

...