Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
telegram @sng24
MAX
info@sng-it.ru
Сайт программиста 1С Битрикс
Сайт программиста
1C Битрикс
(создание и поддержка сайтов)
О себе
Услуги
  • Перевод сайта на https
  • Создание сайтов
  • Интеграция сайта с 1С
  • Выгрузка товаров в Яндекс.Маркет
  • Композитный сайт
  • Внутренняя оптимизация сайта
  • Доработка сайтов
  • Импорт каталога из файла поставщика
  • Перенос сайта на 1С Битрикс
  • Парсинг контента
  • Установка готового сайта
  • Купить лицензию 1С Битрикс
  • Битрикс 24
  • Настройка служб доставки
  • Интеграция с соцсетями
  • Заказ на Маркете
  • Сопровождение сайтов на 1С Битрикс
  • Поиск и удаление вирусов
  • Настройка платежных систем
  • Выгрузка товаров на Hotline
Портфолио
Готовые сайты
  • Недвижимость
  • Медицина
  • Ресторанный бизнес
  • Автомобили и автозапчасти
  • Бухгалтерские и юридические услуги
  • Государство
  • Детские товары
  • Красота и здоровье
  • Мебель, интерьер, декор
  • Образование
  • Одежда и обувь
  • Подарки и сувениры
  • Продукты питания
  • Спорт, туризм и отдых
  • Строительство, ремонт, инструменты
  • Товары для животных
  • ТСЖ, ЖСК
  • Украшения, аксессуары, подарки
  • Электроника и бытовая техника
  • Универсальные
  • Разное
1С Битрикс
  • Старт (6 200 ₽)
  • Стандарт (17 900 ₽)
  • Малый бизнес (40 900 ₽)
  • Бизнес (83 900 ₽)
  • Интернет-магазин + CRM (109 000 ₽)
  • Продление лицензии
  • Сравнить редакции
CRM
  • Битрикс24
Контакты
Ещё
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    О себе
    Услуги
    Портфолио
    Готовые сайты
    1С Битрикс
    CRM
    Контакты
    Сайт программиста 1С Битрикс
    Сайт программиста
    1C Битрикс
    • Главная
    • О себе
    • Услуги
      • Назад
      • Услуги
      • Перевод сайта на https
      • Создание сайтов
      • Интеграция сайта с 1С
      • Выгрузка товаров в Яндекс.Маркет
      • Композитный сайт
      • Внутренняя оптимизация сайта
      • Доработка сайтов
      • Импорт каталога из файла поставщика
      • Перенос сайта на 1С Битрикс
      • Парсинг контента
      • Установка готового сайта
      • Купить лицензию 1С Битрикс
      • Битрикс 24
      • Настройка служб доставки
      • Интеграция с соцсетями
      • Заказ на Маркете
      • Сопровождение сайтов на 1С Битрикс
      • Поиск и удаление вирусов
      • Настройка платежных систем
      • Выгрузка товаров на Hotline
    • Портфолио
    • Готовые сайты
      • Назад
      • Готовые сайты
      • Недвижимость
      • Медицина
      • Ресторанный бизнес
      • Автомобили и автозапчасти
      • Бухгалтерские и юридические услуги
      • Государство
      • Детские товары
      • Красота и здоровье
      • Мебель, интерьер, декор
      • Образование
      • Одежда и обувь
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм и отдых
      • Строительство, ремонт, инструменты
      • Товары для животных
      • ТСЖ, ЖСК
      • Украшения, аксессуары, подарки
      • Электроника и бытовая техника
      • Универсальные
      • Разное
    • 1С Битрикс
      • Назад
      • 1С Битрикс
      • Старт (6 200 ₽)
      • Стандарт (17 900 ₽)
      • Малый бизнес (40 900 ₽)
      • Бизнес (83 900 ₽)
      • Интернет-магазин + CRM (109 000 ₽)
      • Продление лицензии
      • Сравнить редакции
    • CRM
    • Контакты
    • Личный кабинет
    • +7 (904) 589-06-04
    Будьте на связи
    info@sng-it.ru
    • Вконтакте
    • YouTube

    Добавить Last-Modified и Expires в 1С Битрикс

    • Главная
    • ❶ Сниппеты
    • ❷ Добавить Last-Modified и Expires в 1С Битрикс

    Добавляем Last-Modified и Expires на все страницы сайта, проверку делаем здесь https://last-modified.com/.

    Актуальность: Использование Last-Modified и Expires ускоряет загрузку сайта, оптимизирует время на индексацию страниц поисковиками и, в результате, позитивно сказывается на его SEO-позициях. Last-Modified - передает дату изменения страницы, бот не будет повторно индексировать страницу, если изменений не было.

    В товаре можно привязаться к дате изменения элемента, если дата изменения более 30 дней, то переопределяем ее для заголовков. Заводим глобальную переменную $lastModified, чтобы знать, что заголовки у страницы установлены.

    Для этого в компоненте каталога, в файле element.php ставим код:

    
    	$arSelect = Array("IBLOCK_ID", "ID", "TIMESTAMP_X");  
    	$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arResult['VARIABLES']['ELEMENT_ID'], "ACTIVE"=>"Y");   
    	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);    
    	if ($res->SelectedRowsCount()==1)  
    	{  
    		$arItem=$res->GetNext();  
    		$days = ceil((time()-strtotime($arItem["TIMESTAMP_X"]))/86400);
    
    		if($days > 30){
    			$date = new DateTime('-20 days');
    			$dateExpires = new DateTime('30 days');
     
    			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
    			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
    			
    			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
    			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');			
    		}
    		else{
    			$date = new DateTime('-15 days');
    			$dateExpires = new DateTime('30 days');
    			
    			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
    			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
    		
    			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
    			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');	
    		}
    	       GLOBAL $lastModified;	
                   $lastModified = $lastModifiedTimestamp;	
    
    		global $setExpiresFlag;
    		$setExpiresFlag == 1;
    	}
    

    Для остальных страниц в footer.php шаблона добавляем код:

    
    	global $setExpiresFlag;
    		if($setExpiresFlag != 1){
    		
    			if($APPLICATION->GetCurDir() == "/"){
    				$date = new DateTime('-3 days');
    				$dateExpires = new DateTime('3 days');
    			}
    			else{
    				$date = new DateTime('-7 days');
    				$dateExpires = new DateTime('7 days');			
    			}
    			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
    			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
    GLOBAL $lastModified;	
    $lastModified = $lastModifiedTimestamp;
    			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
    			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');	
    			
    		}
     

    В init ставим проверку Last-Modified:

    
    /*Проверка If-Modified-Since и вывод 304 Not Modified */
    AddEventHandler('main', 'OnEpilog', array('CBDPEpilogHooks', 'CheckIfModifiedSince'));
    class CBDPEpilogHooks
    {
        function CheckIfModifiedSince()
        {
            GLOBAL $lastModified;
            
            if ($lastModified)
            {
                header("Cache-Control: public");
                header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT');
                if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $lastModified) {
                    $GLOBALS['APPLICATION']->RestartBuffer();CHTTP::SetStatus('304 Not Modified');
                    exit();
                    /*header('HTTP/1.1 304 Not Modified');
                    exit;*/
                }
            }
        }
    }
    

    Теги: Last-Modified, Expires

    11.11.2024

    Поделиться:
    Назад к списку
    • Услуги
    • Услуги
    • Блог
    • Видеоуроки
    • Скидки на 1C Битрикс
    • Новости интернета
    • Сниппеты
    Аудит сайта
    Записаться на техподдержку

    © 2010-2025 Сайт битрикс программиста Семена Голикова.

    Отправляя любую форму на сайте, вы соглашаетесь с политикой в отношении обработки персональных данных данного сайта.
    - карта сайта
    Главное
    Информация
    Помощь
    • О себе
    • Услуги
    • Готовые сайты
    • Портфолио
    • Купить лицензию 1С Битрикс
    • Битрикс24
    • Контакты
    • Акции
    • Видеоуроки
    • Блог
    • Новости интернета
    • Про интеграцию с 1С
    • Внутренняя оптимизация сайта
    • Сниппеты
    • Хостинг для битрикс
    • Партнерам
    • Отзывы
    • Техподдержка
    +7 (904) 589-06-04
    - написать в MAX
    написать в Telegram - написать в Telegram
    - позвонить в WhatsApp
    Социальные сети:
    - карта сайта © 2010-2025 Сайт битрикс программиста Семена Голикова.
    Отправляя любую форму на сайте, вы соглашаетесь с политика в отношении обработки персональных данных данного сайта.
    Спасибо за заявку!
    Мы свяжемся с Вами в ближайшее
    время и ответим на все вопросы.