2.4.3.19. Сервер не повертає HTTP-заголовок Last-Modified
Увага!
Заголовок не буде повертатися для динамічного контенту, якщо активовані будь-які опції модуля PageSpeed.
Сервера віртуального хостингу за замовчуванням повертають HTTP-заголовок Last-Modified для статичного контенту (зображення, таблиці стилів, JS-скрипти). Якщо ви зіткнулися з ситуацією, при якій сервер не повертає цей заголовок, вам варто перевірити, чи не активована опція «SSI» в
Якщо опція «SSI» включена, сервер не буде повертати заголовок для контенту, що передається веб-сервером Apache. Для статичного контенту заголовок буде повертатися в будь-якому випадку. Робота технології SSI забезпечується завдяки модулям веб-сервера Apache, який ми використовуємо в якості бекенд-сервера на хостингу. В офіційної документації повідомляється, що при використанні SSI, заголовок Last-Modified ; не повертається, так як розрахувати час останнього зміни для динамічного контенту складно.
Для динамічного контенту (динамічні сторінки, PHP-скрипти) даний заголовок необхідно передавати самостійно. Як приклад можна використовувати наступний код:
<?php $LastModified_unix = 1294844676; // время последнего изменения страницы $LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix); $IfModifiedSince = false; if (isset($_ENV['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5)); if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5)); if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) { header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); exit; } header('Last-Modified: '. $LastModified);
Перевірити роботу заголовка і отримати додаткові рекомендації по роботі з ним можна на сайті last-modified.com.