Как сделать в битриксе автоматический редирект с адреса, в котором находится ID объекта на соответствующий ему дрес с ЧПУ?
Например, нужно сделать редирект с адреса /news/945
на /news/s-novym-godom
. Для всех элементов (новостей в данном случае) должны быть прописаны символьные коды, а в системе настроены ЧПУ и страницы уже открываются по второму варианту.
Для этого нужно внести следующий код в файл
[root]/bitrix/templates/[ИМЯ ШАБЛОНА]/components/bitrix/news/[ШАБЛОН]/detail.php
if (preg_match('~^/news/[\d]+/~', $APPLICATION->GetCurPage())) {
if (CModule::IncludeModule('iblock')) {
$res = CIBlockElement::GetList([],['ID' => $arResult['VARIABLES']['ELEMENT_CODE']], false, false , ['CODE']);
while ($arFields = $res->fetch()) {
LocalRedirect('/news/' . $arFields['CODE'] . '/');
}
}
}