Необходимо чтобы страницы сайта отдавали 304 статус и происходила обработка Last-Modified и If-Modified-Since. Согласно поднимавшейся теме https://dev.1c-bitrix.ru/support/forum/forum6/topic8100/ в init.php был создан обработчик
Код
AddEventHandler('main', 'OnEpilog', array('CBDPEpilogHooks', 'CheckIfModifiedSince'));
class CBDPEpilogHooks
{
function CheckIfModifiedSince()
{
GLOBAL $lastModified;
if (!$lastModified) {
$lastModified=time()-1000;
}
if ($lastModified)
{
header("Cache-Control: public");
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastModified).' GMT');
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $lastModified) {
header('HTTP/1.1 304 Not Modified'); exit();
}
}
}
}
Установка и обработка не происходит.
Добавил в шаблоны каталога в файл result_modifier.php
Код
$cp = $this->__component; // объект компонента
if (is_object($cp))
$cp->SetResultCacheKeys(array('TIMESTAMP_X'));?>
в component_epilog.php
Код
GLOBAL $lastModified;
if (!$lastModified)
$lastModified = MakeTimeStamp($arResult['TIMESTAMP_X']);
else
$lastModified = max($lastModified, MakeTimeStamp($arResult['TIMESTAMP_X']));
Все равно даже для детальных страниц выдается при проверке что Last-Modified не найден.
Как все же настроить сайт чтобы все его страницы отдавали Last-Modified. Желательно все же без добавления кода в каждый шаблон компонента.