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

Recommended Posts

  • 3 months later...

Прошу помочь с настройкой отображения http-заголовка. Вроде это: <?php header("Last-Modified: ".gmdate("D, d M Y H:i:s ")."GMT");?> нужно вставить куда-то?

вставляется в файл index.php который в корне сайта лежит

после

$_SERVER['HTTP_IF_MODIFIED_SINCE'];

$_SERVER['HTTP_IF_NONE_MATCH'];

добавить

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");

вроде так, у меня по крайне мере работает.

стянул с зарубежного форума

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


после

$_SERVER['HTTP_IF_MODIFIED_SINCE'];

$_SERVER['HTTP_IF_NONE_MATCH'];

У меня этих строк нет.

попробуйте добавить после define('VERSION', '1.5.1.3'); - ну или какая там у вас версия.

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");

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


  • 4 weeks later...

попробуйте добавить после define('VERSION', '1.5.1.3'); - ну или какая там у вас версия.

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");

добавил, но last modified отдает с текущей датой, а не с датой последнего изменения. Тема не поднималась, неужели у всех все нормально с этим?
Надіслати
Поділитися на інших сайтах


я сам не особо разбираюсь.

может это поможет

это сервис проверки ответов сервера, здесь можно проверить сайт, но сам сайт выдает не правильный параметр, должна быть дата последнего изменения, а выдает текущую дату и время. Этот параметр нужен поисковикам, он ускоряет индексацию сайта, но его нужно правильно настроить.
Надіслати
Поділитися на інших сайтах


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

Там написано решение но оно мне не помогло как и многие другие которые я находил в инете.

Дата все равно выдается не корректно. Сам жду что бы кто нибудь помог =)

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


  • 1 month later...

Для версии 1.5.1.3 решается все очень тривиально

В базе данный есть такое поле как [date_modified] его и будем выводить в качестве Last-Modified, более логичного варианта не вижу

Итак для единицы товара

В файле /catalog/controller/product/product.php

после строки

$this->data['date_available'] = $product_info['date_available'];
добавляем

$this->data['date_modified'] = $product_info['date_modified'];
после строки

'date_available' => $result['date_available'],
добавляем

'date_modified' => $result['date_modified'],

В файл /catalog/view/theme/default/template/product/product.tpl в самое начало, добавляем

<?php
$LastModified_unix = strtotime($date_modified); // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>

Для категорий делаем так же. Если кому то интересно, напишу позже как это сделать...

Как это работает можно посмотреть на моем сайте www.SmallMister.ru

  • +1 2
Надіслати
Поділитися на інших сайтах


Для версии 1.5.3 решается все очень тривиально

В базе данный есть такое поле как [date_modified] его и будем выводить в качестве Last-Modified, более логичного варианта не вижу

Итак для единицы товара

В файле /catalog/controller/product/product.php

после строки

$this->data['date_available'] = $product_info['date_available'];
добавляем

$this->data['date_modified'] = $product_info['date_modified'];
после строки

'date_available' => $result['date_available'],
добавляем

'date_modified' => $result['date_modified'],

В файл /catalog/view/theme/default/template/product/product.tpl в самое начало, добавляем

<?php
$LastModified_unix = strtotime($date_modified); // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>

Для категорий делаем так же. Если кому то интересно, напишу позже как это сделать...

Как это работает можно посмотреть на моем сайте www.SmallMister.ru

Напишите как сделать для категорий!
  • +1 1
Надіслати
Поділитися на інших сайтах

По просьбе трудящихся, дополняю пояснениями по выводу Last-Modified в категориях

Итак...

В файле /catalog/controller/product/category.php

после строки

$this->data['seo_h1'] = $category_info['seo_h1'];
добавляем

$this->data['date_modified'] = $category_info['date_modified'];
В файл /catalog/view/theme/default/template/product/category.tpl в самое начало, добавляем (ИДЕНТИЧНО варианту для единиц товара)

<?php
$LastModified_unix = strtotime($date_modified); // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>

У тех, у кого, PHP начнет материться такими сообщениями как "Warning: Cannot modify header information..." сохраните, указанный в Warning'е, файл в формате "UTF-8 Without BOM". У меня материля на filter.php(больше всего времени ушло на выяснение причин). Мало того, ещё и сам файл не сохранялся в нужный формат (не была доступна ф-ия преобразования), пришлось пересоздать файл.

Кому помог того велкам к кнопочке "+1"

  • +1 4
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

По просьбе трудящихся, дополняю пояснениями по выводу Last-Modified в категориях

Итак...

В файле /catalog/controller/product/category.php

после строки

$this->data['seo_h1'] = $category_info['seo_h1'];
добавляем

$this->data['date_modified'] = $category_info['date_modified'];
В файл /catalog/view/theme/default/template/product/category.tpl в самое начало, добавляем (ИДЕНТИЧНО варианту для единиц товара)

<?php
$LastModified_unix = strtotime($date_modified); // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>

У тех, у кого, PHP начнет материться такими сообщениями как "Warning: Cannot modify header information..." сохраните, указанный в Warning'е, файл в формате "UTF-8 Without BOM". У меня материля на filter.php(больше всего времени ушло на выяснение причин). Мало того, ещё и сам файл не сохранялся в нужный формат (не была доступна ф-ия преобразования), пришлось пересоздать файл.

Кому помог того велкам к кнопочке "+1"

На своем сайте еще не пробовал но http://last-modified.com показывает что Ваш сайт проверку не прошел.
  • +1 1
Надіслати
Поділитися на інших сайтах


Скорее всего вы проверяли только главную страницу, а это не предусматривается. Проверьте то для чего это сделано, а именно категорию или продукт, все работает.

К примеру ссылку на слипы для новорожденных: http://smallmister.r...yh-i-mladencev/

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


Скорее всего вы проверяли только главную страницу, а это не предусматривается. Проверьте то для чего это сделано, а именно категорию или продукт, все работает.

К примеру ссылку на слипы для новорожденных: http://smallmister.r...yh-i-mladencev/

И вправду работает на Вашем сайте =))
Надіслати
Поділитися на інших сайтах


А есть решение для версии v1.5.1.3. ?

это и есть решение для 1.5.1.3, просто я ошибся в номере версии. я поправил свой первый пост по этому вопросу.
Надіслати
Поділитися на інших сайтах


это и есть решение для 1.5.1.3, просто я ошибся в номере версии. я поправил свой первый пост по этому вопросу.

Вы не повепорите но я не могу найти строку this->data['date_available']= $product_info['date_available'];
Надіслати
Поділитися на інших сайтах


это и есть решение для 1.5.1.3, просто я ошибся в номере версии. я поправил свой первый пост по этому вопросу.

номер строки подскажите пожалуйста и для категории то же. я даже скачал оригинал версии но и там не нашел тех строк о которых Вы пишите ((
Надіслати
Поділитися на інших сайтах


Какая версия у Вас указана в index.php ? Вы скачивали версию с myopencart ?

у меня официальная версия с сайта opencart.com. скачал ради интереса oc_store но и там не нашел подобной строчки. скачал последнею версию opencart но и там ее нет. Даже через поиск если искать date_available то ни чего не находится.

может скинете ваш файл ? ну оч любопытно, потому что я все перерыл. спасибо

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


Последняя версия opencart 1.5.3.1, у меня и у вас версия 1.5.1.3 . Поэтому в последних версиях не стоит искать указанные мной строки.

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

product.php

  • +1 3
Надіслати
Поділитися на інших сайтах


Последняя версия opencart 1.5.3.1, у меня и у вас версия 1.5.1.3 . Поэтому в последних версиях не стоит искать указанные мной строки.

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

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

у меня все заработало спасибо. последний вопрос, вставить нужно полностью в самый верх ?

<?php

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

$LastModified = gmdate("D, d M Y H:i:s GMT", $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); ?>

(а это уже начало файла)

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

<div id="content"><?php echo $content_top; ?>

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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