Форум русской поддержки Joomla!® CMS
04.12.2016, 06:02:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Заголовки HTTP

 (Прочитано 481 раз)
0 Пользователей и 1 Гость смотрят эту тему.
julyca
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 27



« : 04.04.2015, 02:02:35 »

Как в Joomla настроить заголовки HTTP? Чтобы в ответе была правильная инфа.
Интересует Last-Modified и Expires.
Expires: Mon, 1 Jan 2001 00:00:00 GMT
То есть страница устарела очень давно. Не знаю, как быть с этим значением. Есть ли смысл его менять?

Подскажите где настроить эти параметры.
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #1 : 04.04.2015, 02:24:48 »

Для Joomla 2.5++ есть плагин
lm_any - плагин Last-Modified для любого контента

для Joomla 1.5 такого не было, но может автор данного плагина вам чем-то поможет
Записан
capricorn
Живу я здесь
******

Репутация: +86/-0
Offline Offline

Сообщений: 1409


« Ответ #2 : 04.04.2015, 03:29:02 »

Для Joomla желательно, чтобы output_buffering был OFF.
Вообще, вам не надо таким вопросом задаваться, если у вас нормальный хостер.
Записан
julyca
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 27



« Ответ #3 : 04.04.2015, 03:38:21 »

Хостер Мажордомо, написал что проблема в настройках моей cms. Angry Придётся на Joomla 2.5 переходить, всё равно когда-то надо это делать.
Записан
capricorn
Живу я здесь
******

Репутация: +86/-0
Offline Offline

Сообщений: 1409


« Ответ #4 : 04.04.2015, 03:52:12 »

В чем проблема? Можно подробнее?
Записан
julyca
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 27



« Ответ #5 : 04.04.2015, 04:00:33 »

Проблема в том что last-modified  выводится текущей датой и временем. А expires вообще 1.01.2001.

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 03 Apr 2015 22:01:45 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 11824
Connection: keep-alive
X-Powered-By: PHP/5.3.28
Set-Cookie: dceb84e712d52ba1e45f51156e5047dc=ee824424ebe5339ae185920a3625bfa8; path=/
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
ETag: 6666cd76f96956469e7be39d750cc7d9
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Last-Modified: Fri, 03 Apr 2015 22:01:45 GMT
Cache-Control: max-age=604800 private, must-revalidate
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip

if last modified не работает и 304 не отдаёт.
Записан
capricorn
Живу я здесь
******

Репутация: +86/-0
Offline Offline

Сообщений: 1409


« Ответ #6 : 04.04.2015, 04:17:58 »

Цитировать
Проблема в том что last-modified  выводится текущей датой и временем. А expires вообще 1.01.2001.

Это нормально. Почему вы думаете, что это проблема?

Записан
capricorn
Живу я здесь
******

Репутация: +86/-0
Offline Offline

Сообщений: 1409


« Ответ #7 : 04.04.2015, 04:22:24 »

Есть беспокойство, что сервер долго кэширует страницы и не видно изменений сразу или проблемы с посещением страницы в первый раз?
« Последнее редактирование: 04.04.2015, 04:40:49 от capricorn » Записан
julyca
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 27



« Ответ #8 : 04.04.2015, 04:36:39 »

Что же здесь нормального? И нагрузка на сервер повышается т загрузка сайта замедляется и роботы поисковых систем не могут определить какой материал изменился., а какой нет. Ради кэширования в браузере мне пришлось отключить nginx. А тут такое...
Записан
capricorn
Живу я здесь
******

Репутация: +86/-0
Offline Offline

Сообщений: 1409


« Ответ #9 : 04.04.2015, 04:45:04 »

Цитировать
Ради кэширования в браузере мне пришлось отключить nginx. А тут такое...

Почитайте это тогда. (Видимо у вас сайт с большой посещаемостью)

http://www.joomlageeks.com/how-to-setup-expires-header-in-joomla-1-5/

Я понял, что могут быть проблемы с первым заходом на сайт. Хотя никогда такого не видел на своем сервере с J 1.5.
Кэширование на уровне php как раз и делается, чтобы снизить нагрузку на сервер. Браузер уже сам решает, кэшировать ему или нет.

Вот что правда с плагином кэширования Joomla 1.5, это то что его номер должен быть последним из всех плагинов, если он включен.
« Последнее редактирование: 04.04.2015, 05:02:44 от capricorn » Записан
julyca
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Женский
Сообщений: 27



« Ответ #10 : 05.04.2015, 23:00:44 »

На Joomla 1.5 заработало  Cheesy в таком варианте:

То же самое для Joomla 1.5:
в файле \libraries\joomla\environment\response.php сразу после public static function sendHeaders()
после:
function allowCache($allow = null)
   {
      if (!is_null($allow)) {
         $GLOBALS['_JRESPONSE']->cachable = (bool) $allow;
      }
      return $GLOBALS['_JRESPONSE']->cachable;
   }

вставляем:
function getDBlm($row_lm,$tab_lm,$query_lm,$id_lm)
   {
      $db = &JFactory::getDBO();
      $query = "SELECT `$row_lm` FROM `$tab_lm` WHERE `$query_lm` = '$id_lm'";
      $db->setQuery($query);
      $select_lm = $db->loadResult();
      return $select_lm;
   }

меняем содержимое
if (JResponse::allowCache() === false)
      {
         JResponse::setHeader( 'Expires', 'Mon, 4 April 2015 00:00:00 GMT', true );             // Expires in the past
         JResponse::setHeader( 'Last-Modified', gmdate("D, d M Y H:i:s"). ' GMT', true );       // Always modified
         JResponse::setHeader( 'Cache-Control', 'no-store, no-cache, must-revalidate', true );    // Extra CYA
         JResponse::setHeader( 'Cache-Control', 'post-check=0, pre-check=0', false );         // HTTP/1.1
         JResponse::setHeader( 'Pragma', 'no-cache' );                                  // HTTP 1.0
      }
на

if(JRequest::getVar('view')=='frontpage')
{
       $id_lm = '6';//ставим id cвоего материала на главной
}
elseif(JRequest::getVar('id')){
   $id_lm = JRequest::getVar('id');
}
else{
   $lastmodsite = gmdate("D, d M Y H:i:s").' GMT';
};
if($id_lm){
   //Запрос к функции класса запрос к БД
   $result = JResponse::getDblm('modified','#__content','id',$id_lm);
   //Разбиваем на значения
   $year_lm=substr($result, 0, 4);
   $mount_lm=substr($result, 5, 2);
   $day_lm=substr($result, 8, 2);
   $time_lm=substr($result, 10, 9);
   //Переводим в UNIX-формат и получаем текстовые значения дня и месяца
   $time_lm_unix_in = $year_lm.'-'.$mount_lm.'-'.$day_lm.' '.$time_lm;
   $day_lm_unix = date('D',strtotime($time_lm_unix_in));
   $mount_lm_unix = date('M',strtotime($time_lm_unix_in));
        //Сохраняем значение для поверки If-modified-since
   $select_lm = strtotime($time_lm_unix_in);
   //Формируем last-modified                                      
       $lastmodsite = $day_lm_unix.', '.$day_lm.' '.$mount_lm_unix.' '.$year_lm.' '.$time_lm.' GMT';
};
        
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])>=$select_lm){

   header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');    exit;   }      
        
JResponse::setHeader( 'Expires', 'Mon, 1 Jan 2001 00:00:00 GMT', true );                    
JResponse::setHeader('Last-Modified',$lastmodsite,true);

JResponse::setHeader( 'Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', false);
JResponse::setHeader( 'Pragma', 'no-cache' );

Огромное спасибо fox7812 и alexxsav!
« Последнее редактирование: 05.04.2015, 23:08:22 от julyca » Записан
altvvc
Завсегдатай
*****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 505



« Ответ #11 : 12.07.2015, 10:56:16 »

Если все настроить так как описано на всех сайтах. Заголовки на полторашке обрабатываются нормально. Как включаешь кеширование - вот тут начинаются танцы с бубном...

Например тот же RSForm перестает редиректить на указанную страницу в настройках формы. Да и вообще может отказаться работать... Через раз.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet