Установка заголовка Last-Modified и 304 Not Modified с проверкой If-Modified-Since

26 сентября, 2017

Заголовок Last-Modified сообщает посетителю сайта о времени последнего изменения страницы. Если посетителем сайта является робот поисковой системы, то на основании корректно настроенной работы этого заголовка робот принимает решение о индексации или повторной индексации страниц вашего сайта. Более подробно о том, для чего служит Last-Modified вы можете прочитать на этой странице

Следующий код при помощи php функции filectime получается дату последнего изменения файлового дескриптора для файла, полученного из массива $_SERVER[‘SCRIPT_FILENAME’]

Далее мы проверяем наличие заголовка If-Modified-Since. Если есть то отдаем 304 Not Modified, если нет генерируем заголовок Last-Modified

$LastModified_unix = strtotime(date("D, d M Y H:i:s", filectime($_SERVER['SCRIPT_FILENAME']))); 
$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);

Вы можете разместить этот код в index.php вашей системы управления, в таком случае ваш сайт успешной пройдет проверку на сайте https://last-modified.com/ru/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *