Странная дата документа в Яндексе

12
MaxB
На сайте с 29.04.2003
Offline
110
1391

Приветствую вас, господа.

Вот не так давно пришел ко мне Яндекс и набрал кучу документов.

Все документы динамические, па PHP. В начале каждого документа прописано:


<?php
Header("HTTP/1.0 200 OK");
Header("Last-Modified: ".gmdate("D, M d Y H:i:s",filemtime("ХХХ.php"))." GMT");
?>

В Яндексе дата документа выглядит так: 01.01.1970

Где же я напортачил?

И еще вопрос. Где-то я читал, что при HTTP/1.0 не передаются хедеры, а при HTTP/1.1 передаются. Правильно ли, что для моих страниц, которые я пытаюсь выдать за статические стоит HTTP/1.0 ? Или может я совсем е в тему загнул ? :rolleyes:

H
На сайте с 17.07.2003
Offline
0
#1

оставь так :)

индексировать чаще будет 😆

C
На сайте с 17.08.2002
Offline
82
#2

ИМХО, строка Header("HTTP/1.0 200 OK") не нужна, т.к. сервер сам выдает этот ответ автоматически, если файл действительно существует.

В Яндексе дата документа выглядит так: 01.01.1970

А вот это странно 😕. У меня несколько вариантов: это глюк яндекса, это глюк сервера или у файла "ХХХ.php" действительно такая дата изменения (хочу заметить, что это вовсе не означает, что он действительно изменен в это время ;))

Как писал MaxB
И еще вопрос. Где-то я читал, что при HTTP/1.0 не передаются хедеры, а при HTTP/1.1 передаются. Правильно ли, что для моих страниц, которые я пытаюсь выдать за статические стоит HTTP/1.0 ? Или может я совсем е в тему загнул ? 🙄

Хедеры при обычных запросах и стандартных ответах сервера передаются в любом случае. Так что это действительно "не в тему" ;).

MaxB
На сайте с 29.04.2003
Offline
110
#3
Как писал Cage
Хедеры при обычных запросах и стандартных ответах сервера передаются в любом случае. Так что это действительно "не в тему" ;).

Что-то терзают меня смутные сомнения ;)

НЕ согласен. Для динамичеких страниц Last-modified Не передается! Если его самому скриптом не передать, что я и пытаюсь сделать.

C
На сайте с 17.08.2002
Offline
82
#4
Как писал MaxB
Что-то терзают меня смутные сомнения ;)
НЕ согласен. Для динамичеких страниц Last-modified Не передается! Если его самому скриптом не передать, что я и пытаюсь сделать.

Не нужно путать понятия. Хедеры - передаются, а Last-modified для динамических страниц - нет. Его (для динамики) желательно передавать самому.

Кстати, многие вебмастера просто отправляют текущую дату и время. А некоторые (как это делаю я ;)) "отматывают" время немного назад и отправляют его в ответ на запрос.

MaxB
На сайте с 29.04.2003
Offline
110
#5
Не нужно путать понятия. Хедеры - передаются, а Last-modified для динамических страниц - нет. Его (для динамики) желательно передавать самому.

CAGE, Вы меня извините, но кроме Вас тут никто ничего не путает. Вы говорите абсолютно тривиальные вещи, и перефразируете мои же постинги. Понятно, что передается, а что нет. Иначе я бы образец кода не присылал.


Кстати, многие вебмастера просто отправляют текущую дату и время. А некоторые (как это делаю я ;)) "отматывают" время немного назад и отправляют его в ответ на запрос.

Моя цель заключается в том, чтобы Яндекс не брал уже проиндексированные страницы, которые не менялись. Потому, как есть еще масса страниц, которые не были проиндексированы вообще.

А почему молчат ветераны форума?

[Удален]
#6
Как писал MaxB
В Яндексе дата документа выглядит так: 01.01.1970
Где же я напортачил?

Это сервер напортачил, выдает дату начала отсчета времени в UNIX'е

Моя цель заключается в том, чтобы Яндекс не брал уже проиндексированные страницы, которые не менялись. Потому, как есть еще масса страниц, которые не были проиндексированы вообще.

ИМХО, лучше пусть ласт-модифид вообще не отдается. Я тоже пытался химичить, никакой пользы не увидел... Если отдавать текущую дату для динамики, то Яндекс пытается все переиндексировать, новых документов мало забирает... Если отдавать какую-нить старую дату, то происходит тоже самое (видно все равно проверяет обновление). Убрал свои "изыскания" :), Я стал все индексировать как надо, т.е. и со сроками и с объемами - порядок, и новые вовремя забирает.

P.S. К ветеранам себя не причисляю... :)

MaxB
На сайте с 29.04.2003
Offline
110
#7

Это сервер напортачил, выдает дату начала отсчета времени в UNIX'е

Ну сам сервер без человека мало чего умеет :) Вот я смотрю, вроде бы ПХП код верный, а баг налицо.


Если отдавать текущую дату для динамики, то Яндекс пытается все переиндексировать, новых документов мало забирает...

Логично потому как считает, что документы были изменены с момента прошлого визита.


Если отдавать какую-нить старую дату, то происходит тоже самое (видно все равно проверяет обновление). Убрал свои "изыскания" :), Я стал все индексировать как надо, т.е. и со сроками и с объемами - порядок, и новые вовремя забирает.

Есть 2 вопроса:

1. Была ли дата Last-modified при повторном визите робота равна той, которую он увидел в прошлый раз? Или все же она была старая, но не в точности равна?

2. Как выглядела концовка url на Ваших экспериментах (htm, php)?

3. Передавалась ли Header("HTTP/1.0 200 OK") параллельно с last-modified?

[Удален]
#8
Как писал MaxB

Есть 2 вопроса:
1. Была ли дата Last-modified при повторном визите робота равна той, которую он увидел в прошлый раз? Или все же она была старая, но не в точности равна?
2. Как выглядела концовка url на Ваших экспериментах (htm, php)?
3. Передавалась ли Header("HTTP/1.0 200 OK") параллельно с last-modified?

1. Она была старая, но не в точности равна, т.е. рассчитывалась от текущей. Вообще, достаточно сложно определить верную дату для динамической страницы. Допустим, добавил я что-то в базу, изменились сразу сотни страниц... Как учесть, что поменяется, что нет?

2. .shtml (иногда с параметрами после "?"). Страницы собираются сервером из cgi-сценариев.

3. Да, конечно. Если не будет выдаваться 200 Ok, то Яндекс и забирать не будет.

Кстати, если есть возможность выполнять перловые скрипты, то заголовки можно смотреть так:

#!/usr/bin/perl

use LWP::UserAgent;

use CGI qw(:standard);

print "Content-type: text/plain\n\n";

$site = param("site");

print "site: $site\n\n\n\n";

$ua = new LWP::UserAgent;

$req = new HTTP::Request GET => "$site";

print $ua->request($req)->as_string;

Где переменная $site - адрес страницы.

Хотя, скорее всего, Вы это знаете... :)

M
На сайте с 25.01.2001
Offline
57
#9
MaxB
На сайте с 29.04.2003
Offline
110
#10

Вот, что я вычитал:

http://www.webmasterworld.com/forum3/6005-3-15.htm

Just putting in a last-modified date will do you no good if you do not send back the 304 header when you get a if-modified-since. That will just increase you bandwidth usage.

А относительно моего заявления:

"В Яндексе дата документа выглядит так: 01.01.1970"

- так почему-то за дату документа принята Expires?

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Expires: Thu, 01 Jan 1970 00:00:01 GMT

Last-Modified: Thu, Jul 10 2003 17:02:08 GMT

12

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