RuWeb.net Forum

Сервер не выдает дату последнего изменения и кодировку документа
zeedorff - 29.6.2003 в 19:34

День добрый.
Яндекс выдает приминительно к сайту
"Неправильные даты" и "Неправильная кодировка". Говорит что 20 проц серверов не выдают это автоматически и надо настроить вручную. Как это сделать?
С уважением,
Клиент Ruweb

[Изменено 23.9.2004 от support]


treamz - 30.6.2003 в 14:31

прописывать мету надо товарищ!


support - 30.6.2003 в 22:42

А меты яндексу достаточно?
Можно, наверное в .htaccess сделать
AddDefaultCharset windows-1251
или что у вас там за кодировка...
А вот такой формулировки как "Неправильные даты" я не встречал :)
Если сайт на скриптах то выдавать кодировку и дату можно самостоятельно скриптом.


treamz - 30.6.2003 в 22:49

да меты достаточно и необязательно использовать htaccess... хотя может с htaccess эффективней я незнаю
:cool:


Case - 23.2.2004 в 14:59

Не достаточно меты.
http://tester.com.ua/index.htm - <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
и при этом Яндекс говорит тоже самое - неверная кодировка сервера. (заметим сервера а не страницы)


support - 23.2.2004 в 17:32

Читаем 3й пост сверху.


Spadver - 20.4.2004 в 20:17

Цитата:
сообщение support
Читаем 3й пост сверху.


Читаем первый пост!
Цитата:
сообщение Яндекса
Сервер не выдает дату последнего изменения документа!


А что с этим делать?


support - 20.4.2004 в 20:57

Сайт на php, если не ошибаюсь? Т.ч. вывод любых заголовков - в ваших руках. А дату последнего изменения динамической страницы сервер никак сам не может угадать.
Можно попробовать
ini_set('last_modified',1);
(не знаю будет ли работать - не пользовался)
либо формировать заголовок с датой вручную и выводить функцией header()...

[Изменено 23.9.2004 от support]


Spadver - 20.4.2004 в 21:01

Цитата:
А что с этим делать?


Нашел здесь http://forum.ru-board.com/topic.cgi?forum=24&topic=1491#1

Цитата:
в ПХП нада добавлять что то типа в самом начале страницы.
$now=getdate();
$sdate=$now['mday']."-".$now['mon']."-".$now['year']."".$now['hours'].":".$now['minutes'];
header ("Last-Modified: ".$sdate);


РАБОТАЕТ!!!


support - 20.4.2004 в 21:08

Только смысла это не имеет...


Mithgol - 4.12.2004 в 19:11

Предлагаю вставить в начало PHP-скрипта такой код:

<?php
$theDate = gmdate('D, d M Y H:i:s',filemtime($_SERVER["SCRIPT_FILENAME"])).' GMT';
if ($theDate === $_SERVER["HTTP_IF_MODIFIED_SINCE"]){
header($_SERVER["SERVER_PROTOCOL"] . " 304 Not Modified");
die();
};
header('Last-Modified: '.$theDate);
?>

[Изменено 4.12.2004 от Mithgol]


support - 5.12.2004 в 19:04

Цитата:
Предлагаю вставить в начало PHP-скрипта такой код:
Зря предлагаете. Не все так просто. Если скрипт берет данные из базы или из любых других файлов, информация будет меняться, а дата изменения скрипта останется прежней. Если при этом использовать приведенный вами код, браузер не будет грузить новую страницу - будет показывать старую из кеша.


Mithgol - 5.12.2004 в 21:09

Правильно; и в этом случае значение filemtime() надобно будет заменить на самую свежую дату изменения базы, или же на самую свежую дату среди всех дат изменения файлов, скриптом берущихся. После чего код станет функционировать невозбранно.


Angel07 - 16.6.2005 в 12:34

Я так понял, что если страница "собрана" с помощью SSI, Last-Modified также сервером не выдается?


support - 16.6.2005 в 12:41

Естественно. SSI может содержать кучу компонентов, включая вызовы CGI-скриптов. Какая дата последнего изменения всех этих данных серверу самостоятельно угадать сложно.


Angel07 - 16.6.2005 в 16:23

А существует ли возможность, если сайт сделан с применением SSI каким-то образом "заставить" сервер выдавать в качестве даты последнего изменения, скажем, дату модификации самого "свежего" инклюда, дату модификации основной страницы или текущую дату? Для оптимизации кэширования и для Яндекса :-) Я подозреваю, что такой возможности нет, но, может быть, я ошибаюсь?


Stimorol - 11.6.2006 в 15:58

скажите в .htaccess
XBitHack full
и на SSI документы поставьте права на выполнение для группы :
chmod g+x *.shtml
тогда сервер будет выдавать дату последнего изменения файла