В Joomla есть встроенный функционал для обработки If-Modified-Since заголовка
// Получаем объект текущего ответа
$response = JFactory::getApplication()->getDocument()->getRenderer('component')->getResponse();
// Проверяем наличие заголовка If-Modified-Since
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$lastModified = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
// Получаем время последнего изменения страницы/контента
$modifiedTime = strtotime($yourContentModifiedTime);
// Если контент был изменен после указанной даты If-Modified-Since, отправляем полный ответ
if ($modifiedTime > $lastModified) {
// Ваш код для генерации и отправки полного ответа
} else {
// Отправляем код 304 Not Modified
$response->setHeader('HTTP/1.1', '304 Not Modified', true);
JFactory::getApplication()->close();
}
} else {
// Ваш код для генерации и отправки полного ответа, так как If-Modified-Since заголовок отсутствует
}