Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
«8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
Сертифицированный партнёр 1С-Битрикс
+7 495 788 88 03
+7 495 788 88 03
E-mail
customer@8cores.ru
Адрес
г. Москва, ул. Б. Никитская, 12с1
Режим работы
Пн. – Пт.: с 10:00 до 19:00 (мск)
Продукты
  • Готовые сайты
    • Интернет-магазины
    • Корпоративные сайты
    • Отраслевые сайты
  • Лицензии 1С-Битрикс
  • Продления лицензий
Услуги
  • Разработка сайтов и приложений
    • Запуск сайта на готовом решении 1С-Битрикс
    • Разработка сайтов
    • Перенос сайта на 1С-Битрикс
  • Интеграция
    • Интеграция сайта с 1С
    • Интеграция с CRM Битрикс24
    • ERP для Производственной компании
  • Поддержка
    • Техническая поддержка
    • Доработка существующего сайта
  • Дизайн
    • Разработка дизайна сайта
  • Информационная безопасность
    • Проверка сайта и удаление вирусов
Блог
Компания
  • О компании
  • Сертификаты
  • Реквизиты
  • Партнёры
  • Вакансии
Москва
Ваш городСанкт-Петербург?
Да Изменить
«8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
Сертифицированный партнёр 1С-Битрикс
Продукты
  • Готовые сайты
    Готовые сайты
  • Лицензии 1С-Битрикс
    Лицензии 1С-Битрикс
  • Продления лицензий
    Продления лицензий
Услуги
  • Разработка сайтов и приложений
    Разработка сайтов и приложений
  • Интеграция
    Интеграция
  • Поддержка
    Поддержка
  • Дизайн
    Дизайн
  • Информационная безопасность
    Информационная безопасность
Блог
Компания
  • О компании
  • Сертификаты
  • Реквизиты
  • Партнёры
  • Вакансии
    Москва
    Ваш городСанкт-Петербург?
    Да Изменить
    +7 495 788 88 03
    +7 495 788 88 03
    E-mail
    customer@8cores.ru
    Адрес
    г. Москва, ул. Б. Никитская, 12с1
    Режим работы
    Пн. – Пт.: с 10:00 до 19:00 (мск)
    «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
    Продукты
    • Готовые сайты
      Готовые сайты
    • Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс
    • Продления лицензий
      Продления лицензий
    Услуги
    • Разработка сайтов и приложений
      Разработка сайтов и приложений
    • Интеграция
      Интеграция
    • Поддержка
      Поддержка
    • Дизайн
      Дизайн
    • Информационная безопасность
      Информационная безопасность
    Блог
    Компания
    • О компании
    • Сертификаты
    • Реквизиты
    • Партнёры
    • Вакансии
      Москва
      Ваш городСанкт-Петербург?
      Да Изменить
      +7 495 788 88 03
      E-mail
      customer@8cores.ru
      Адрес
      г. Москва, ул. Б. Никитская, 12с1
      Режим работы
      Пн. – Пт.: с 10:00 до 19:00 (мск)
      «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
      Телефоны
      +7 495 788 88 03
      «8 Ядер» - готовые сайты, интернет-магазины на 1С-Битрикс
      • Продукты
        • Продукты
        • Готовые сайты
          • Готовые сайты
          • Интернет-магазины
          • Корпоративные сайты
          • Отраслевые сайты
        • Лицензии 1С-Битрикс
        • Продления лицензий
      • Услуги
        • Услуги
        • Разработка сайтов и приложений
          • Разработка сайтов и приложений
          • Запуск сайта на готовом решении 1С-Битрикс
          • Разработка сайтов
          • Перенос сайта на 1С-Битрикс
        • Интеграция
          • Интеграция
          • Интеграция сайта с 1С
          • Интеграция с CRM Битрикс24
          • ERP для Производственной компании
        • Поддержка
          • Поддержка
          • Техническая поддержка
          • Доработка существующего сайта
        • Дизайн
          • Дизайн
          • Разработка дизайна сайта
        • Информационная безопасность
          • Информационная безопасность
          • Проверка сайта и удаление вирусов
      • Блог
      • Компания
        • Компания
        • О компании
        • Сертификаты
        • Реквизиты
        • Партнёры
        • Вакансии
      • +7 495 788 88 03
        • Телефоны
        • +7 495 788 88 03
      • г. Москва, ул. Б. Никитская, 12с1
      • customer@8cores.ru
      • Пн. – Пт.: с 10:00 до 19:00 (мск)
      Главная
      —
      Блог
      —
      1С-Битрикс
      —ЧПУ пагинация

      ЧПУ пагинация

      чпу пагинация
      1С-Битрикс
      12 июля 2021
      СЕО специалисты часто просят в постраничной навигации на сайте убрать get параметры. В Битрикс из коробки именно через ?PAGEN_ реализована пагинация и штатной возможности включить ЧПУ для пагинации нет.
      Нам нужно привести ссылки навигации по страницам раздела к виду:
      /путь_раздела/page-2/
      

      Изменяем шаблон пагинации компонента system.pagenavigation

      В шаблоне компонента system.pagenavigation, нужно включить буферезацию вывода, для этого перед HTML вставить вызов функции:
      ob_start();
      
      И после HTML, в конец файла шаблона, вставить php-скрипт для преобразования ссылок пагинации в ЧПУ:
      $paging = ob_get_contents();
      $paging = preg_replace_callback('/href="([^"]+)"/is', function($matches) {
          $url = $matches[1];
          $newUrl = '';
          if ($arUrl = parse_url($url)) {
              $newUrl .= $arUrl['path'];
      	     if (substr($newUrl, -1) != '/') {
      			$newUrl .= '/';
      	     }
      	$newUrl = preg_replace('#(page-[\d]+/)#is', '', $newUrl);
              $newUrl = str_replace(array('index.php', 'index.html'), '', $newUrl);
              parse_str(htmlspecialcharsback($arUrl['query']), $arQuery);
              foreach ($arQuery as $k => $v) {
                  if (in_array($k, array('SECTION_CODE'))) {
                      unset($arQuery[$k]);
                  } elseif (substr($k, 0, 5)=='PAGEN') {
                      $newUrl .= 'page-'.intval($v).'/';
                      unset($arQuery[$k]);
                  }
              }
              $buildQuery = http_build_query($arQuery, '', '&');
              if (strlen($buildQuery)) {
                  $newUrl .= '?'.$buildQuery;
              }
          }
          return 'href="'.$newUrl.'"';
      }, $paging);
      ob_end_clean();
      echo $paging;
      

      Создать файл /bitrix/pagen.php с кодом для обработки URL

      function __isPathTraversalUri($uri)
      {
          if (($pos = strpos($uri, '?')) !== false) {
              $uri = substr($uri, 0, $pos);
          }
          $uri = trim($uri);
          return preg_match("#(?:/|2f|^|\\\\|5c)(?:(?:%0*(25)*2e)|\\.){2,}(?:/|%0*(25)*2f|\\\\|%0*(25)*5c|$)#i", $uri) ? true : false;
      }
      
      $newUri = preg_replace('#(page-[\d]+/)#is', '', $_SERVER['REQUEST_URI']);
      if (!__isPathTraversalUri($newUri)) {
          $_SERVER['REQUEST_URI'] = $newUri;
      }
      

      Подключить обработчик ЧПУ пагинации в .htaccess

      php_value auto_prepend_file "путь_document_root/сайт.ру/bitrix/pagen.php"
      
      И так же в .htaccess добавить правило:
      RewriteEngine On
      RewriteRule ^(.*)/page-([\d]+)/ /$1/?PAGEN_1=$2 [L,QSA]
      
      Данное решение работает для Битрикс версий 15.5 и выше.
      • Комментарии
      Загрузка комментариев...
      чпу пагинация htaccess php битрикс
      Назад к списку
      • 1С Администрирование 2
      • 1С-Битрикс 15
      • HTML/CSS 1
      • jQuery 1
      • PHP 2
      • Оптимизация 9
      1с 1С ajax apache api bitrix clean-param CRM cron curl etext get google htaccess html jivo jquery json market marketplace nginx PageSpeed php post robots robots.txt search seo web агенты администрирование артикул аспро битрикс боты вирус директория защита каталог композит кэш логи магазин маркетплейс метрика модальные окна настройка обмен онлайн консультант оптимизация ордер ошибки пагинация папка парсинг поиск покупка сервера склад скрипт спам страница тестирование троян ускорение ут цвета чпу юkassa яндекс
      Продукты
      Услуги
      Компания
      Блог
      Контакты
      +7 495 788 88 03
      +7 495 788 88 03
      E-mail
      customer@8cores.ru
      Адрес
      г. Москва, ул. Б. Никитская, 12с1
      Режим работы
      Пн. – Пт.: с 10:00 до 19:00 (мск)
      customer@8cores.ru
      г. Москва, ул. Б. Никитская, 12с1
      © 2010-2023 «8 Ядер» - веб-студия полного цикла
      Политика конфиденциальности