Решил ход конём сделать
кэш smarty не использую.
У меня установлен модуль Express Cache 3,
для него в таблице ps_express_cache есть поля с датой последнего обновления `last_updated` для определённого урла `page_url`.
Укажу эту дату здесь
<?php
$LastModified_unix = strtotime(date("D, d M Y H:i:s", 'Дата из таблицы ps_express_cache для определённого урла ')));
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = false;
if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr ($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
$IfModifiedSince = strtotime(substr ($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}
header('Last-Modified: '. $LastModified);
?>
Переопределяем displayHeader в FrontController.
либо здесь Dispatcher.php
Что скажете?
в этом случае настройки nginx для настройки Last-modify трогать не нужно