Неправильная обработка IF MODIFIED SINCE

epifan
На сайте с 01.02.2009
Offline
27
472

Тема наверное старая как динозавры.

Неправильно работает скрипт обработки IMS, страницы выпадают из индекса Яши, т.к. "передано неверное количество данных". Помогите решить проблему, своих скудных знаний уже не хватает.

<?php
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');

function date2unixstamp($s)
{
$months = array ('Jan' => 1, 'Feb' => 2, 'Mar' =>3,'Apr' => 4, 'May' => 5, 'Jun' =>6,'Jul' => 7, 'Aug' => 8, 'Sep' =>9,'Oct' => 10, 'Nov' => 11, 'Dec' =>12);
$a = explode(' ', $s);
$b = explode(':', $a[4]);
return gmmktime($b[0], $b[1], $b[2], $months[$a[2]], $a[1], $a[3]);
}

$file_name='index.php';
$mt=filemtime($file_name);
$mt_str = gmdate('D, d M Y H:i:s', $mt).' GMT';

if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
{
$cache_mt = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
if (date2unixstamp($cache_mt) >= $mt)
{
header('Last-Modified: '.$mt_str);
header('HTTP/1.1 304 Not Modified');
exit;
}
}
header('Last-Modified: '.$mt_str);
header('Content-Type: text/html; charset=windows-1251');
?>
<html>
<body>
Контент
</body>
</html>

Заранее спасибо.

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