0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 719 Просмотров
*

julyca

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

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

ELLE

  • Support Team
  • 4598
  • 868
Re: Заголовки HTTP
« Ответ #1 : 04.04.2015, 01:24:48 »
Для Joomla 2.5++ есть плагин
[topic=286239]

для Joomla 1.5 такого не было, но может автор данного плагина вам чем-то поможет
*

capricorn

  • Практически профи
  • 1687
  • 105
Re: Заголовки HTTP
« Ответ #2 : 04.04.2015, 02:29:02 »
Для Joomla желательно, чтобы output_buffering был OFF.
Вообще, вам не надо таким вопросом задаваться, если у вас нормальный хостер.
*

julyca

  • Захожу иногда
  • 19
  • 1
Re: Заголовки HTTP
« Ответ #3 : 04.04.2015, 02:38:21 »
Хостер Мажордомо, написал что проблема в настройках моей cms. >:( Придётся на Joomla 2.5 переходить, всё равно когда-то надо это делать.
*

capricorn

  • Практически профи
  • 1687
  • 105
Re: Заголовки HTTP
« Ответ #4 : 04.04.2015, 02:52:12 »
В чем проблема? Можно подробнее?
*

julyca

  • Захожу иногда
  • 19
  • 1
Re: Заголовки HTTP
« Ответ #5 : 04.04.2015, 03: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

  • Практически профи
  • 1687
  • 105
Re: Заголовки HTTP
« Ответ #6 : 04.04.2015, 03:17:58 »
Цитировать
Проблема в том что last-modified  выводится текущей датой и временем. А expires вообще 1.01.2001.

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

*

capricorn

  • Практически профи
  • 1687
  • 105
Re: Заголовки HTTP
« Ответ #7 : 04.04.2015, 03:22:24 »
Есть беспокойство, что сервер долго кэширует страницы и не видно изменений сразу или проблемы с посещением страницы в первый раз?
« Последнее редактирование: 04.04.2015, 03:40:49 от capricorn »
*

julyca

  • Захожу иногда
  • 19
  • 1
Re: Заголовки HTTP
« Ответ #8 : 04.04.2015, 03:36:39 »
Что же здесь нормального? И нагрузка на сервер повышается т загрузка сайта замедляется и роботы поисковых систем не могут определить какой материал изменился., а какой нет. Ради кэширования в браузере мне пришлось отключить nginx. А тут такое...
*

capricorn

  • Практически профи
  • 1687
  • 105
Re: Заголовки HTTP
« Ответ #9 : 04.04.2015, 03: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, 04:02:44 от capricorn »
*

julyca

  • Захожу иногда
  • 19
  • 1
Re: Заголовки HTTP
« Ответ #10 : 05.04.2015, 22:00:44 »
На Joomla 1.5 заработало  :D в таком варианте:

То же самое для 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, 22:08:22 от julyca »
*

altvvc

  • Завсегдатай
  • 512
  • 22
Re: Заголовки HTTP
« Ответ #11 : 12.07.2015, 09:56:16 »
Если все настроить так как описано на всех сайтах. Заголовки на полторашке обрабатываются нормально. Как включаешь кеширование - вот тут начинаются танцы с бубном...

Например тот же RSForm перестает редиректить на указанную страницу в настройках формы. Да и вообще может отказаться работать... Через раз.
Красота спасет мир, а пофигизм спасет нервы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

404 ошибка при обращении http://site.ru/index.php

Автор Oleg Inishev

Ответов: 2
Просмотров: 282
Последний ответ 19.05.2017, 14:18:30
от SeBun
Как выровнять заголовки страниц по центру и увеличить

Автор artruslan

Ответов: 14
Просмотров: 2440
Последний ответ 04.12.2014, 21:06:48
от Shustry
Можно ли на joolma организовать видеочат например как сдесь http://www.ruskams.com/

Автор joomler

Ответов: 6
Просмотров: 3859
Последний ответ 19.11.2013, 19:16:23
от Master Tigra team
Разные заголовки статьи и title, плагин pageTitle

Автор eugene_o

Ответов: 1
Просмотров: 1279
Последний ответ 05.06.2013, 10:01:22
от eugene_o
Ninja RSS Syndicator... обрезает заголовки, в RSS нет обязательного элемента fulltext / yandex:full

Автор HolySong

Ответов: 1
Просмотров: 743
Последний ответ 21.01.2013, 14:38:28
от HolySong