1 (2013-05-11 11:04:27 отредактировано Модест)

Тема: last-modified (решено)

Если кому-нибудь надо: http://help.yandex.ru/webmaster/?id=995332

<? header ('Last-Modified: ' . Page::date('D, d M Y H:i:s') . ' GMT'); ?>

GMT необходимо выставить как на скрине.

Время по Гринвичу: gmt.su

Сайт Модест

Поделиться

2

Re: last-modified (решено)

А подскажите пожалуйста.
У меня при проверке показывает дату
Last-Modified: Fri, 26 Apr 2013 04:24:43 GMT
Если Last-Modified это "Последнее изменение"(страницы)
Почему при каждой проверке стоит одна и та же дата и время?
Или я не совсем понимаю, что, всё это значит?
Спасибо.

Поделиться

3 (2013-05-15 11:07:59 отредактировано Модест)

Re: last-modified (решено)

У тебя всё работает правильно. Некоторые ставят постоянное обновление этой даты, но это бессмысленно. Подробнее можно прочитать, например, здесь http://last-modified.com/ru/if-modified-since.html

Сайт Модест

Поделиться

4 (2013-05-15 15:21:49 отредактировано Миша)

Re: last-modified (решено)

С датой понятно, спасибо.
А как справиться с "304 Not Modified не найден"? Или это тоже не обязательно?

Поделиться

5

Re: last-modified (решено)

Это важно. Ради этого и есть весь сыр бор. Вот как должно быть:

Вот ссылка от Яндекса для проверки ответа: http://webmaster.yandex.ru/server-response.xml

Сайт Модест

Поделиться

6

Re: last-modified (решено)

Видимо, что-то не то...

Поделиться

7

Re: last-modified (решено)

Переехал на новый хостинг - такая же проблема.

Светлые умы, подскажите, как сделать так, чтобы Monstra возвращала If-Modified-Since.


Сайт Модест

Поделиться

8

Re: last-modified (решено)

Теперь всё работает. Код корректный.

<?php
$LastModified_unix = strtotime( Page::date('D, d M Y H:i:s') . ' GMT'); // время последнего изменения страницы
$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);
?>

Сайт Модест

Поделиться