Итак, нам нужно привести нашу пагинацию к виду: /catalog/#SECTION_COD#/pageX/
Первым делом нужно изменить шаблон компонента пагинации, чтобы он начал выдавать корректный формат ссылки.
Для этого нам нужно заменить все ссылки со старого формате PAGEN_1 на новый, статический.
Имейте ввиду, если у вас на странице несколько компонентов с включенной пагинацией - нужная может не быть PAGEN_1, а будет с другим порядковым номером.
Выложил для образца переделанный шаблон типовой round на гитхабе.
Подключаем данный шаблон и радуемся - у нас уже будут ссылки на страницы пагинации в нужном нам статическом формате.
Далее нужно настроить, чтобы система эти статические номера страниц научилась распознавать. Для этого, в htaccess прописываем разборку ЧПУ:
htaccess
Также создаем файл /bitrix/pagen.php такого содержания (если у вас формат нумерации странрицы отличается от моего - внесите правки в регулярное выражение):
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 с помощью директивы:
RewriteEngine On RewriteRule ^(.*)/page([\d]+)/ /$1/?PAGEN_1=$2 [L,QSA]
Если настройки вашего сервера не поддерживают такое подключение - файл нужно проинклюдить перед подключением ядра на странице, где лежит компонент, использующий пагинацию:
include_once "../bitrix/pagen.php"; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
В результате функция $APPLICATION->GetCurPage(); не будет учитывать в текущем url-адресе ЧПУ-формат номера страницы.

