@Cyber-Pavel

Как сделать красивые url в пагинации в битрикс 1с?

Добрый день. У меня есть пагинация на сайте. Хочу сделать красивые url, но не получается. Url меняется, но страницу пагинации не переходит. Буду рад любой помощи.
в .htacces прописываю:
php_value auto_prepend_file "/home/bitrix/ext_www/pagen.php"
RewriteRule ^(.*)page-1(.)$ /$1 [R=301,L]
RewriteRule ^(.*)/page-([\d]+)/ /$1/?PAGEN_1=$2 [L,QSA]

В компоненте пагинации прописываю:
<?php
$pagination = ob_get_contents();

$pagination = preg_replace_callback('/href="([^"]+)"/is', function($matches) {

    $url = $matches[1];

    $newUrl = '';

    if ($arUrl = parse_url($url)) {

        $newUrl = isset($_SERVER['REAL_FILE_PATH']) && strlen($_SERVER['REAL_FILE_PATH']) ? str_replace('//','',preg_replace('/page-(\d+)/i', '/',$_SERVER['SCRIPT_URL'])) : $_SERVER['SCRIPT_NAME'];

        $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, '', '&amp;');

        if (strlen($buildQuery)) {

            $newUrl .= '?'.$buildQuery;

        }

    }

    return 'href="'.$newUrl.'"';

}, $pagination);

ob_end_clean();

echo $pagination;

?>

И файл pagen.php

<?php
$_SERVER['REQUEST_URI'] = preg_replace('#(page-[\d]+/)#is', '', $_SERVER['REQUEST_URI']);
?>

Источник:
https://ashevchuk.blog/bitrix/chpu-paginatsiya-na-...
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 1
Никак !!
Господи меня парой поражают SEO шники которые до сих пор не понимают что сейчас не 2008
не нужны миллионы страниц в индексе.
1. ВСЕ страницы на сайте должны иметь ЧПУ
2. Каждая страничка должна вести на свою категорию.
3. Нет дублей никаких.
4. Риал каноникал на всех страницах, на всех, вот просто в хедер засуньте риал каноникал на текущую страничку без гет параметров !
5. Если у вас страничка с гет то ее точно индексировать нельзя, по этому запрещайте индексировать карзины пагенации и тд, канибализм пока никто не отменял.
6. Выберете в вашем случае два варианта
1. спрятать за AJAX в таком случае 1 кнопочка и у вас все работает.
2. вас не устраивает что вы не можете дать ссылку на 5 страничку не приходя к костылям.
В таком случае смотрите правило выше ( все страницы с гет уже не попадают в индекс)
Скажите мне зачем вам в индексе 10 одинаковых страниц отжирающих вес?

Пример
У вас запрос
"Холодильник тефаль"
У вас есть секция холодильники и тефаль, проблем нет вы на их основе собераете ЧПУ
НО так же у вас есть и фильтры
Красный
от 30 до 36 обьем морозилки
Количество контуров 2
евро вилка
и тд. В общем в совокупности будут запросы которые в интернете по 1-2 за год !
а таких страниц может быть миллион.
По этому веса у них быть не должно
И того
Важные фильтры ченрез секции и они имеют чпу
Холодильник тефаль - существует
Красный холодильник тефаль Высота 30 Ширина 31 с ледообразователем в ценовом дипапзоне от 100 до 142, это идиотский запрос его в индексе быть не должно, а следвоательно вся эта лабудень собирается на гет параметрах, а они у нас мало того что запрещены все полностью к индексации.
Так еще и риал каноникал у нас стоит и говорит явно что вот эту страничку нужно индексировать.
Смысл создавать странички от которых толку 0 ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы