Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

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

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

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

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

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

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

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

Link to comment
Share on other sites


Last-Modified в этот реализации меняется только если заново сохранить товар в админке.

Link to comment
Share on other sites


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

 

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

 

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

 

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

 

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

Edited by tommy182
Link to comment
Share on other sites


  • 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));
?>

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


  • 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 или сам код ик влияет?

Link to comment
Share on other sites


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

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

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

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

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

 

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

Link to comment
Share on other sites

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

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

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

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

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

 

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

 

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

Link to comment
Share on other sites


В файл /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 потому чтолее-менее законное гдействие.

 

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

 

для товара

после строки

$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 =, да?

Link to comment
Share on other sites


  • 3 weeks later...

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

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

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

Link to comment
Share on other sites


  • 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 не бугдет опрегделен два раза?

Link to comment
Share on other sites

  • 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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


  • 1 month later...

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

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

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

ггде затупил?

спасипотому что

 

з.ы. окстор 1.5.5.1

Edited by Dimasscus
Link to comment
Share on other sites


  • 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?

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.