If-Modified-Since как обрабатывать на php?

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
Вычитал в доках у гугла:
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок "If-Modified-Since". Этот заголовок позволит веб-серверу сообщать Google, изменилось ли содержание сайта со времени последнего сканирования. Поддержка данной функции сократит нагрузку на пропускную способность и издержки.

Как такую штуку можно реализовать на php? Как узнать что выполняется такой запрос? Как дать правильный ответ на запрос? Нужно ли после ответа на такой запрос выводить содержимое страницы или достаточно делать просто
PHP:
exit;
 
Вычитал в доках у гугла:
Как такую штуку можно реализовать на php? Как узнать что выполняется такой запрос? Как дать правильный ответ на запрос? Нужно ли после ответа на такой запрос выводить содержимое страницы или достаточно делать просто
PHP:
exit;
PHP:
header('тут твой заголовок');
 
Чтобы передать в хедере что-то важное, нужно знать о запросе: изменился ли документ? Если его никак не отловить, то бессмысленная эта затея.
 
Если сервер отдает 304 Not Modified на том, что не менялось - значит все работает как нужно тебе и гуглу.
 
Вообще сервер должен код 200 отдавать по умолчанию.
 
обычно это требуется, если статика отдается через php(c кодом 200)
без php apache ставит все хедеры автоматом

PHP:
$f_name='page.html';

$f_time=filemtime($f_name); $f_etag=md5_file($f_name);
if(strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])==$f_time OR $_SERVER['HTTP_IF_NONE_MATCH']==$f_etag) header("HTTP/1.1 304 Not Modified");
else { header("Last-Modified: ".gmdate("D, d M Y H:i:s",$f_time)." GMT"); header("Etag: ".$f_etag); readfile($f_name); }

exit;
 
Назад
Сверху