|
|
|
| Многие вэбмастера уже давно практикуют для привлечения роботов ежедневное обновление всего содержимого сайта. Это делается по таймеру средствами РНР, а именно: поочередно каждая страница считывается и затем записывается заново. При этом файл страницы получает новое время обновления, поскольку записан как бы заново.
Эффект от этого есть и многократно подтвержден на практике, но сути его я никогда не понимал и не понимаю сейчас: каким образом робот может узнать дату, когда файл закачали на сервер?
Мне кажется, что это возможно только на уровне серверных программ, а разве такое возможно при обращении по ВЭБ? | |
|
|
|
|
|
|
|
для: Владимир55
(03.02.2012 в 12:28)
| | Может речь идет о статичных HTML-страницах, дата обновления которых может отправляться с HTTP-заголовками? Но вообще я так понимаю, не просто страница переписывается, чуть-чуть должно меняться её содержимое. Робот не дурак, он увидит, что содержимое не менялось, уж хэш содрежимого-то он считает (это даже самый примитивный робот делает), иначе он будет кругами по сайту ходить. | |
|
|
|
|
|
|
|
для: cheops
(03.02.2012 в 12:36)
| | Да, речь идет о статичных HTML-страницах.
не просто страница переписывается, чуть-чуть должно меняться её содержимое.
Это важно прежде всего для торговцев ссылками. На странице могут появляться новые ссылки или исчезать неоплаченные акцептором, и потому надо приучить робота смотреть ее каждый день, хотя в подавляющем числе случаев страница остается неизменной.
А обновляют её так:
<?php
$buff = file_get_contents ($name_file);
$file = fopen ($name_file, "w") ;
fputs ($file, $buff) ;
fclose ($file) ;
|
Разве робот может уловить такое обновление? | |
|
|
|
|
|
|
|
для: Владимир55
(03.02.2012 в 13:03)
| | Как сервер настроен, если он отправляет дату изменения документа, ориентируясь на дату HTML-файла, то вполне - роботу просто будет заголовок соответствующий посылаться. | |
|
|
|
|
|
|
|
для: cheops
(03.02.2012 в 13:09)
| | Если так, то в основе лежит правильная работа с 'HTTP_IF_MODIFIED_SINCE' (о чем в описавшей этот метод статье даже не упоминается).
Интересно, а много ли CMS обрабытывают дату изменения файла и дату кеширования? | |
|
|
|
|
|
|
|
для: Владимир55
(04.02.2012 в 10:33)
| | У многих в этом надобности нет, так как системы динамические и дату обновления шлют раную текущей. | |
|
|
|
|
|
|
|
для: cheops
(04.02.2012 в 12:17)
| | Да, я тоже видел такие решения.
А вот что остается непонятным.
Если робот уже видел этот контент, то мой скрипт посылает ему 304 Not Modified. А если не видел, то роботу посылается заголовок с Last-Modified: и затем выводится контент.
А кто отдает роботу "200 ОК" ?
Это посылает сервер автоматически без участия моего скрипта переде выдачей контекста? | |
|
|
|
|
|
|
|
для: Владимир55
(03.02.2012 в 12:28)
| | Сравните страницу вчера и страницу сегодня. Если есть разница - то и робот ее получит, если нет - он не увидит обновления. Ведь робот - это браузер.
P.S. Прочитал пост Cheops'a. Действительно, упустил из виду заголовки сервера. Послать их нетрудно даже из джумловского мамбота. В Вашем коде достаточно написать одну строку кода перед третьей строкой, чтобы клиент получил заголовок: данная страница была изменена секунду назад. | |
|
|
|