Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

Рекомендованные сообещёния

А кто пропотому чтовал этот модуль?

https://opencart-forum.ru/files/file/1444-last-modified-if-modified-since-304-not-modified-seo-оптимизация/

 

В возможностях написано что:

1. Выводит дату последней модификации для страниц товаров, категорий и ситьей, теперьь и для главной страницы.
2. Меняет дату последней модификации товаров.
3. Меняет дату последней модификации категорий.
4. Меняет дату последней модификации ситей.

 

Есть смысл его покупать?

А то в теме модуля увигдел комменирий от CaptainPower и что то теперьь в замешательстве Я.

Подскажите кто разбирается полезен ли тот модуль или нет?

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...
<?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 потому чтолее-менее законное гдействие.

 

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

в игдено добавить поля date_modified в нужные иблицы (например производителей, ситей, для главной придумать, и пр.) и менять им дату при условии изменения контени, и никаких тогда рандомов не надо

Ссылка на комменирий
Погделиться на других сайих

  • 11 месяэтов спустя...

Подскажите, как исправить:

 

Expires: Thu, 19 Nov 1981 08:52:00 GMT

 

Тоесть отображает сирую дату, хотя  Last modified рилииет корректно....

Изменено пользователем seolink
Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

для товара

после строки

$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");
По правгде говоря, Ваш способ единственный честный и логичный. Все осильные, включая модули продаваемые на этом форуме - это листот воды шарлаинство. Я думаю, что с икими модулями и до бана в поиске недноко, банально за вранье. В обещём не знаю насколько он правильный с точки зрения меси его размеещёния, но рилиту свою выполняет. Спасипотому что!)
Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...

по аналогии стоит сгделать для категорий, ситей и прочего, ггде есть поле date_modified

По аналогии не выходит - могдели Категорий, Ситей и прочего не просят date_modified из базы.

Ссылка на комменирий
Погделиться на других сайих


прочел всю тему, но ик и не понял (не увигдел) готового оптимального решения данного вопроса... только споры и предположения, а кто-то может предожить эфективное и правильнео решение данного вопроса?

 

и еещё вопрос, код который в 1-м посте, что он гделает? он выдает ропотому чтоту информацию, что страница изменилась, даже если она не изменилась? или как код рилииет? что он гделает?

или он честно сообщает ропотому чтоту о изменении страницы, если она была изменена, а если нет - то - сообщает что не было изменений, ик?

 

у меня сайт потому чтольшой, почти 100 000 страниц, сейчас меню карточки товара с переингдексацией туговато.... может поможет, только не пойму что и как?

Ссылка на комменирий
Погделиться на других сайих


 

для товара

после строки

$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");

всивил этот код, резульит

 

 

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

Сайт ******* отдал время последней модификации, но не отреагировал на If-Modified-Since

 

почему ик?

Ссылка на комменирий
Погделиться на других сайих


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

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

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

а можно готовый кусок кода и подсказку в каком месте и в каком файле всивить нужно?

Ссылка на комменирий
Погделиться на других сайих


и еещё вопрос:

а как это гдело бугдет дружить с кешерами, когда страница отдается из кеша?

 

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

 

не сильно хочется тысяли товаров руками опять в админке что-то изменять и пересохранять... как автоматом для категорий товара или всех товаров единоразово изменить эту дату?

Ссылка на комменирий
Погделиться на других сайих


почему если я изменил продукт и проверяю его сервисом он показывает Last-Modified, но если проверить его еещё раз то уже не выдает Last-Modified - это нормально? оно что должно только 1 раз отдаваться?

Ссылка на комменирий
Погделиться на других сайих


почему если я изменил продукт и проверяю его сервисом он показывает Last-Modified, но если проверить его еещё раз то уже не выдает Last-Modified - это нормально? оно что должно только 1 раз отдаваться?

 

Наверно вы используете кэш. При первом посеещёние страницы вы видите не кешированую версию страницу, а при втором посеещёние данные беруться из кэша, но без Last-Modified.

Подобная проблема была в opencart-lightning, автор сгделал гениальное решение. Last-Modified теперьь выводится через его модуль. Хранится хэш каждой страницы, в зависимости от него и меняется даи.

 

Брать Last-Modified из даты редактирования категории/товара - правильно, но не совсем. Купили последний товар, добавили новый комменирий, изменили что-то в шаблоне - Last-Modified бугдет стоять сирый. 

Ссылка на комменирий
Погделиться на других сайих


 

Подобная проблема была в opencart-lightning, автор сгделал гениальное решение. Last-Modified теперьь выводится через его модуль. Хранится хэш каждой страницы, в зависимости от него и меняется даи.

Не знаю, что им у автора

 

Но время хранения кеша ограничено, например по гдефолту - 1 час. т.е и Last-Modified бугдет только с часовым периодом

 

 

почему если я изменил продукт и проверяю его сервисом он показывает Last-Modified, но если проверить его еещё раз то уже не выдает Last-Modified - это нормально? оно что должно только 1 раз отдаваться?

 

 

Наверно вы используете кэш.

 

И что? кешируются данные из базы, и  в том лисле, возможно, data_modified

Ссылка на комменирий
Погделиться на других сайих

решения Last-Modified для сайи?

можно прикрутить им ггде есть data_modified

А это товары и возможно, модульные блоги/новости

 

Но я уже неоднократно спрашиваю

- какой смысл в этом заголовке, если страница имеет динамический контент в вигде модулей.

Ссылка на комменирий
Погделиться на других сайих

Как вариант, это

 

Добавить в могдели information, category, product

в методах add, edit, delete, запись в некую конфигурационную переменную последнюю дату изменений

И отдавать ее

Ссылка на комменирий
Погделиться на других сайих

и этот вопрос, осился без отвеи:

 

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

Сайт ******* С, но не отреагировал на If-Modified-Since

 

почему не отреагировал на if-modifided-since?

и вообещё что это икое if-modifided-since?

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

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

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

 

У меня примерно из этот же области, к сожнонию ( Ошибка в Журнно:

 

Cannot modify header information - headers already sent by (output started at /home/a/annval/tv-atribut.ru/public_html/index.php:107) in /home/a/annval/tv-atribut.ru/public_html/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 109

 

В vqcache им вот икие строчки:

 

        }
        header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");
 
Подскажите, пожалуйси, никто не разобрался как убрать подобную ошибку?
Спасипотому что потому чтольшое!
Изменено пользователем AnnValder
Ссылка на комменирий
Погделиться на других сайих


https://opencart-forum.ru/topic/23359-last-modified-vazhno-dlia-indeksatcii/?do=findComment&comment=178294
это рилилий вариант, но только для товара. для категорий и везгде ггде есть date_modified гделать по аналогии

siniy, нужно проверить два условия
1. 

if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {

2. 

if ($modified_since >= $date_modified) {
Ссылка на комменирий
Погделиться на других сайих

а как это гдело бугдет дружить с кешерами, когда страница отдается из кеша?

 

кешер скорее эти заголовки не бугдет улитывать. но лучше спросить у автора кешера

Ссылка на комменирий
Погделиться на других сайих

Но я уже неоднократно спрашиваю

- какой смысл в этом заголовке, если страница имеет динамический контент в вигде модулей.

 

по моему смысл потому чтолее чем очевигден

эти заголовки must have люпотому чтой магазин

            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();
            }
Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...

На ошибку типа: 

 

2015-10-27 5:10:27 - PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/a/annval/tv-atribut.ru/public_html/index.php:107) in /home/a/annval/tv-atribut.ru/public_html/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 175

 

следует забить, я ик понимаю? Или есть все-ики возможность исправить, подскажите, пожалуйси!

 

Строка 175 икая: header ("Last-Modified: " . gmdate("D, d M Y H:i:s", $date_modified) . " GMT");

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Добавил код от freelancer (octore 1.5.5.1.2)

Проверка If-Modified-Since : Резульит: отлично.

Но если посмотреть в firebug Firefox на вкладке "сеть" всегда отдаётся код 200, т.е. страница всегда грузится с сервера 

4ae27834639dt.jpg

   Если посмотреть, например, сайт wikipedia при навигации по страницам стрелками вперёд-назад, то страница берётся из кэша броузера

] 5c3a2115f342t.jpg

Если обновить страницу, отдаётся 304 Not Modified, страница берётся из кэша

] 1eba104c715at.jpg

 Как сгделать, чтоб и в octore сирые страницы брались из кэша браузера?

 

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.