Как настроить дату последнего апдейта?

12
R
На сайте с 08.08.2006
Offline
36
1225

Слышал, что можно с помощью этого подсказать боту какая страница когда была обновлена, для того чтобы он за проход индексировал самые новые. Ведь известно, что за один проход он индексирует ограниченное кол-во страниц.

Добавлено,
"он" всмысле яндекс-бот

ICQ: 202562974 Предпусковые подогреватели (http://www.bezopasnost.net/)
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#1

сам недавно этим заинтересовался, попробуйте заголовками:

$d='дата создания страницы'

$lm=gmdate('D, d M Y H:i:s',$d).' GMT';

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))

{

$ims=preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);

if($ims==$lm)

{

header('HTTP/1.0 304 Not Modified');

exit;

}

}

header('Last-Modified: '. $lm);

+обычный вывод,

тогда действительно "старые" страницы будут оседать в кэше поисковиков, прокси и браузеров => будет всем щасье.

HitMan_ru
На сайте с 16.06.2005
Offline
56
#2

header ("Last-Modified: ".gmstrftime ("%a, %d %b %Y %T GMT", filemtime(PHP_SELF)));
bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#3

Radli, я использую такую функцию:

function lastmodified($time = 0) {

static $modified;
$ret = (int) $modified;
if ($time > $modified) {
$modified = $time;
}
return $ret;
}

Вызываю ее каждый раз, когда имеется хоть какой-то факт изменения с зафиксированной датой. Например, если вывожу список статей - вызываю

lastmodified($article['Modified']);

для каждой статьи (в столбце Modified базы данных храню дату последнего изменения статьи).

Вызываю и

lastmodified(filemtime(PHP_SELF));

и так далее.

А в конце, перед выводом страницы

header("Last-Modified: ".gmstrftime ("%a, %d %b %Y %T GMT", lastmodified()));

Функция, как видно, устроена таким образом, что хранит максимальный из всех аргументов, с которыми она когда-либо вызывалась. И отдает его при каждом запуске.

bondarevpipes.com (http://ru.bondarevpipes.com/)
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#4

имхо, 304 ответ лучше как раз для ботов

Sm@ily
На сайте с 02.10.2006
Offline
25
#5
Zlo_606ep:
сам недавно этим заинтересовался, попробуйте заголовками:
$d='дата создания страницы'
$lm=gmdate('D, d M Y H:i:s',$d).' GMT';

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
{
$ims=preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
if($ims==$lm)
{
header('HTTP/1.0 304 Not Modified');
exit;
}
}
header('Last-Modified: '. $lm);
+обычный вывод,

тогда действительно "старые" страницы будут оседать в кэше поисковиков, прокси и браузеров => будет всем щасье.

не совсем поняла, нужно этот код вставить в вверх страницы?

HitMan_ru
На сайте с 16.06.2005
Offline
56
#6

если не на самый верх, то поймаете такую ошибку http://phpfaq.ru/headers

Sm@ily
На сайте с 02.10.2006
Offline
25
#7

поняла, спасибо.

а есть какая то разница между этими кодами?

мне вот кто то давал этот код:

<?php

header("Last-Modified:".date("D, j M Y H:i:s \G\M\T", time() - 3600));
?>

я его добавила на сайт (давно), через сервис http://seolab.ru/add/header.htm

Last-Modified показывается (дата - сегодня, хотя страница не обновлялась...), дата в Яндексе не показывается.

смотрела другой сайт где нет этого кода, там сервис не показывает дату....

HitMan_ru
На сайте с 16.06.2005
Offline
56
#8

Sm@ily, тот код, что вы показали всегда будет показывать дату изменения на 3600 секунд, на час получается, до обращения к этому файлу.

Sm@ily
На сайте с 02.10.2006
Offline
25
#9
HitMan_ru:
Sm@ily, тот код, что вы показали всегда будет показывать дату изменения на 3600 секунд, на час получается, до обращения к этому файлу.

т.е. это не верно?

в вашем коде нужно писать дату создания документа, это обязательно или есть альтернатива?

HitMan_ru
На сайте с 16.06.2005
Offline
56
#10

Sm@ily, именно в том коде, что я привёл не нужно, тот код определяет именно редактирование документа.

вот этот комментарий

/ru/forum/comment/1771354

а тут всё подробно расписано, немного расширенней метод )

/ru/forum/comment/1771354

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий