Рекомендуемые сообщения

vlanok    5

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

ДА! мне то же интересно или как правильно прописать в .htaccess

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

Прошу помочь с настройкой отображения 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");

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
jdeac    9

после

$_SERVER['HTTP_IF_MODIFIED_SINCE'];

$_SERVER['HTTP_IF_NONE_MATCH'];

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

после

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
jdeac    9

попробуйте добавить после 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 отдает с текущей датой, а не с датой последнего изменения. Тема не поднималась, неужели у всех все нормально с этим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
jdeac    9

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

Для версии 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ingenerks    295

Для версии 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

Напишите как сделать для категорий!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

По просьбе трудящихся, дополняю пояснениями по выводу 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"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

По просьбе трудящихся, дополняю пояснениями по выводу 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 показывает что Ваш сайт проверку не прошел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

И вправду работает на Вашем сайте =))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

у меня оригинальная версия opencart, не oc_store

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

define('VERSION', '1.5.1.3');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maks    20

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

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

product.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ork47    4

Последняя версия 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу