Автор Тема: Как правильно настроить Last-modify  (Прочитано 921 раз)

16 Апрель 2021, 20:20:13
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Решил ход конём сделать :)
кэш 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 трогать не нужно
16 Апрель 2021, 21:38:20
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Проверку проходит?
Если да, то нормально.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
17 Апрель 2021, 11:14:35
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Хорошее решение. Но только если установлен модуль Express Cache 3.
25 Сентябрь 2022, 15:29:29
Ответ #18
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С позволения автора, апну топик, что б не создавать новый.

Как правильно настроить ответ 304 Not Modified?
Last-modify уже заработал, а вот 304 никак не настрою.
https://i.imgur.com/aQbLKNj.png
26 Сентябрь 2022, 14:21:41
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В Dispatcher.php внесите измения как написано выше.
В последних версиях prestashop это уже есть.
26 Сентябрь 2022, 14:27:13
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
При чем тут prestashop?
Настраивают со стороны сервера.
У вас apache или ngnix?
30 Сентябрь 2022, 18:42:15
Ответ #21
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
apache
а файлы отдает ngnix
Было бы со стороны сервера - не спрашивал бы.
01 Октябрь 2022, 11:54:30
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
У вас какая версия prestashop?
В 1.7.... все есть. Смотрите файл smarty_internal_runtime_cachemodify.php
if ($_isCached && $cached->timestamp <= strtotime($_last_modified_date)) {
    ....
    header('Status: 304 Not Modified');
Кеширование у вас включено?
И где вы проверяли ответ? Меняли дату для If-Modified-Since?
02 Октябрь 2022, 09:38:53
Ответ #23
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас какая версия prestashop?
В 1.7.... все есть. Смотрите файл smarty_internal_runtime_cachemodify.php
if ($_isCached && $cached->timestamp <= strtotime($_last_modified_date)) {
    ....
    header('Status: 304 Not Modified');
Кеширование у вас включено?
И где вы проверяли ответ? Меняли дату для If-Modified-Since?
1.7.8.3
Кеширование включено
Проверял на сервисе https://last-modified.com/ru/last-modified-header
02 Октябрь 2022, 11:58:05
Ответ #24
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Проверять нужно в панели Яндекс.Вебмастера, там есть инструмент «Проверка ответа сервера».
В last-modified.com нет возможности менять дату для If-Modified-Since.