![]() |
Apache 2.2: не работает (ExpiresByType text/html) для динамических страниц
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), например (последний пример - из официальной справки): Код:
ExpiresByType text/html "access plus 30 minuts" Код:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 3) Если в конфиге прописать: Код:
<FilesMatch \.(html|htm|php)$> Код:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=3600 Со статическими html-файлами никаких проблем не наблюдается. Специально проверил. В то же время, во всех приведённых примерах в качестве момента отсчёта времени указывается не modification (в этом случае для динамических html кэширования бы не работало), а access. Почему (ExpiresByType text/html) не работает с динамическим html ? А вернее, как-то в фоновом режиме им пропиывается нулевое время. Да так, что даже Header set Cache-Control "max-age ..." не может этот header перезаписать (только добавляет, тогда как со статикой - перезаписывает). |
Время: 18:26. |
Время: 18:26.
© OSzone.net 2001-