Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Last modified_важно для индексации


Recommended Posts

Проблема с модулем кеширования increase page speed

Очистив кеш заголовок отдается нормально, по обновив страницу следеющий раз она отдается с кеша, не верные

Можно ли как-то подружить

Документ получен!

Страница АДРЕС САЙТА вернула 304 код, но продолжила отдавать страницу.

Результат: бессмысленно

Сайт АДРЕС САЙТА корректно отдает код 304 Not Modified, но страница продолжает загружаться.

Надіслати
Поділитися на інших сайтах


Друзья, подскажите, нужно ли самому менять параметр

 

$LastModified_unix = 1294844676; // время последнего изменения страницы

 

А то при проверке выдает Last-Modified: Wed, 12 Jan 2011 15:04:36 GMT (хотя это не так)

 

С ластмодом не работал и пока плохо понимаю систему. :-)

 

Сам разобрался. Просто стоит для совсем тугих оговорить что нужно конвертить дату в юникс формат))спасибо)

Змінено користувачем tommy182
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Изменил скрипт в заголовке, пробуем,  тестируем.

Ошибок, вроде больше нет.

Тестировал на OcStore 1.5.4.1

 

 

Есть еще один скрипт но я его не пробовал 


<?php
$nu=mt_rand(31536000,31536300);
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time()-$nu));
header('Pragma: no-cache');
header('Cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$num=mt_rand(200000,200300);
header('Last-Modified: '.gmdate('D, d M Y H:i:s \G\M\T', time()-$num));
?>

Если есть желающие потестить отпишитесь о результатах ;)

Надіслати
Поділитися на інших сайтах


Я тут вас почитал и ничего не понял... У меня новый сайт, я его буду периодически наполнять новостями и товары редактировать, их описание. Мне стоит сделать только то что указано в 1 посте или еще что-то надо?

Надіслати
Поділитися на інших сайтах


  • 3 months later...

Версия оцСтор 1.5.4.1.

Если установить в шапку код из заголовка темы, то появляется ворнинг:

Warning: Cannot modify header information - headers already sent by (output started at /путь-к-сайту/index.php:105) in /путь-к-сайту/vqmod/vqcache/vq2-catalog_view_theme_default_template_common_header.tpl on line 16

При этом, ласт-модифаед показывает. Это какой-то конфликт с модулем, работающем на vqmod или сам код так влияет?

Надіслати
Поділитися на інших сайтах


Чтобы правильно отдавать Last modified, нужно проверять дату модификации каждого объекта на странице

1. Нужно знать время модификации каждого модуля.

Например, вы поменяли баннер... Кто об этом знает?

2. Выводить максимальную дату, следовательно, нужно  таскать эту дату по всем модулям

Например, блок рекомендуемые. Искать максимальную дату в кортеже.

 

Т.е. сначала буферизировать вывод, затем отдавать заголовок

Надіслати
Поділитися на інших сайтах

Чтобы правильно отдавать Last modified, нужно проверять дату модификации каждого объекта на странице

1. Нужно знать время модификации каждого модуля.

Например, вы поменяли баннер... Кто об этом знает?

2. Выводить максимальную дату, следовательно, нужно  таскать эту дату по всем модулям

Например, блок рекомендуемые. Искать максимальную дату в кортеже.

 

Т.е. сначала буферизировать вывод, затем отдавать заголовок

 

То есть, я рано объявляю запись в заголовке? Нужно код разместить где-то ближе к футеру?

Надіслати
Поділитися на інших сайтах


В файл /catalog/view/theme/default/template/common/header.tpl

после <head> ставим небольшой скрипт на PHP:

<?php
$num=mt_rand(2000,10000);
$LastModified=gmdate("D, d M Y H:i:s \G\M\T", time()-$num);
$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 >= $num) {
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
exit;
}
header('Last-Modified: '. $LastModified);
?>

В корне неверное предложение

Заголовок нельзя посылать после начала вывода

 

А вот в самом начале файла header.tpl, перед <!DOCTYPE более-менее законное действие.

 

Надіслати
Поділитися на інших сайтах

freelancer, абсолютно - 1000-2000 секунд роли не сыграют.

 

Основное мое замечание  - если желаете - установите код в самом начале.

 

Но здесь уже обсуждалось, что лезть в шаблоны с заголовками - плохо (читать про 404)

Надіслати
Поділитися на інших сайтах

 

для товара

после строки

$product_info = $this->model_catalog_product->getProduct($product_id);

указать

        $date_modified = strtotime($product_info['date_modified']);
        if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
            $modified_since = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
            if ($modified_since >= $date_modified) {
                header ("HTTP/1.1 304 Not Modified ");
                header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");
                exit();
            }
        }
        header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");

для категорий просто переменную изменить на $category_info =, да?

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Аналогично ставится для категорий, заменить $product_info на $category_info

Если в журнале появляются ошибки типа: Undefined index: date_modified

То не пугаемся, просто робот обратился к категории, которая не существует (отключена).

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

 

для товара

после строки

$product_info = $this->model_catalog_product->getProduct($product_id);

указать

        $date_modified = strtotime($product_info['date_modified']);
        if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
            $modified_since = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
            if ($modified_since >= $date_modified) {
                header ("HTTP/1.1 304 Not Modified ");
                header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");
                exit();
            }
        }
        header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");

 

Я ни в коем случае не умничаю, но разве при таком условии заголовок Last-Modified не будет определен два раза?

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Добрый вечер!

прописала Last-Modified в файл продукт, категория, производитель и в журнале выдает ошибки

 

2014-02-08 21:14:28 - PHP Notice:  Undefined index: date_modified in /home/srv359/с.ru/catalog/controller/product/manufacturer.php on line 134

014-02-08 21:12:30 - PHP Notice:  Undefined variable: catalog_info in /home/srv359/с.ru/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 76

Надіслати
Поділитися на інших сайтах


"производитель"  уберите, данный скрипт не будет там работать, ввиду того, что в базе нет данных о дате модификации производителя.

в производителях убрала, но вторая ошибка все равно выходит

014-02-08 21:12:30 - PHP Notice:  Undefined variable: catalog_info in /home/srv359/с.ru/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 76

Надіслати
Поділитися на інших сайтах


  • 1 month later...

приветствую. проверил-получил

Результат: провалено

Сайт http://мойсайт.ru НЕ отдает ВРЕМЯ последней Модификации Last-Modified .

где затупил?

спасибо

 

з.ы. окстор 1.5.5.1

Змінено користувачем Dimasscus
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Как раз озадачился тем, как сообщить Яше, что на странице изменения контента (описание изменилось, например), и наткнулся сначала на модуль, а потом и на эту тему ))

 

Очень полезная и нужная вещь, но у меня почему-то отказывается работать ((

Ни http://last-modified.com/ru/last-modified-if-modified-since-php.html

ни http://www.webrankinfo.com/english/tools/server-header.php

не видят возврата 304 ((

Причем ласт-модифайд.ком вообще показывает, что введен неверный урл. Грешил на кириллические символы в урле, но и через %?? не хочет.

Может, в настройках сервера что-то включить надо или в htaccess?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.