powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Apache 2.2: не работает (ExpiresByType text/html) для динамических страниц
1 сообщений из 1, страница 1 из 1
Apache 2.2: не работает (ExpiresByType text/html) для динамических страниц
    #39091976
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apache 2.2 + Debian
В настройках Apache прописываю директивы кэширования (для надёжности - в самом конце главного конфигурационного файла /etc/apache2/apache2.conf , т.к. в самом файле подключается множество других конфигов).

- После изменения конфигов Apache всегда перезапускаю.
- Перед всеми (ExpiresByType ...) , и (Header set Cache-Control ...) директива (ExpiresActive on) стоит (иначе бы Expires не устанавливались для css, js и картинок)
- Модули mod_headers и mod_expires подключены (иначе бы Expires не устанавливались для css, js и картинок)

Для css, js и картинок никаких проблем не возникает - работает и (ExpiresByType ...) , и (Header set Cache-Control ...) .

Но для динамических html (формируемых php-скриптами) имеют место следующие проблемы :

1) не работает директива (ExpiresByType text/html) , например (последний пример - из официальной справки ):
Код: sql
1.
2.
3.
ExpiresByType text/html "access plus 30 minuts"
ExpiresByType text/html "access plus 6 months"
ExpiresByType text/html "access plus 1 month 15 days 2 hours"

2) Указание этих директив для text/html , равно как и не указание, приводит к тому, что отправляются следующие заголовки:
Код: sql
1.
2.
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT

Такие заголовки отправляются тогда, когда указывается директива ExpiresByType text/html "access 0 seconds" . Но в конфиге указывается другое время (вполне конкретное).

3) Если в конфиге прописать:
Код: sql
1.
2.
3.
<FilesMatch \.(html|htm|php)$>
    Header set Cache-Control "max-age=3600"
</FilesMatch>

то Expires по-прежнему соответствует нулевому времени, но наши заголовки при этом добавляются к (no-store, no-cache, must-revalidate, post-check=0, pre-check=0) (не перезаписывают, а именно добавляются):
Код: sql
1.
2.
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=3600
Expires: Thu, 19 Nov 1981 08:52:00 GMT


Итог
Со статическими html-файлами никаких проблем не наблюдается. Специально проверил.
В то же время, во всех приведённых примерах в качестве момента отсчёта времени указывается не modification (в этом случае для динамических html кэширования бы не работало), а access .

Почему (ExpiresByType text/html) не работает с динамическим html ?

А вернее, как-то в фоновом режиме им пропиывается нулевое время. Да так, что даже Header set Cache-Control "max-age ..." не может этот header перезаписать (только добавляет, тогда как со статикой - перезаписывает).
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Apache 2.2: не работает (ExpiresByType text/html) для динамических страниц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]