Доброго времени суток уважаемые читатели. Данную статью хотелось бы посвятить настройке ЧПУ в интернет-магазине bitrix’а у карточек товаров и разделов. Т.к. я мало знаком с битриксом пришлось долго лазать по форумам и документации прежде, чем я пойму как же поменять ссылки, а также поставить редиректы со старых с, к примеру, /shop/category/detail.php?ID=384 на /shop/category/nazvanie-tovara. Для вас, дорогие читатели, я решил упростить задачу и рассказать как же я изменил вид ссылок на вложенные человекопонятные в битриксе. Также хочу заметить, что данный способ не будет работать, если у страниц с товарами и категориями не заполнено поле с символьным кодом, насколько мне известно, это, как правило, делается автоматически — если нет, то нужно либо сгенерировать символьный код, либо проставить вручную на каждый раздел и каждую карточку товара.
Итак, всего необходимо сделать не много не мало — 3 действия:
Создаем правило обработки адресов
Это нужно для того, чтобы страница просто открывалась по нужному нам URL /shop/category/nazvanie-tovara.
Переходим по административной части битрикса сюда Рабочий стол > Настройки > Настройки продукта > Обработка адресов > Правила обработки
И нажимаем кнопку «Новая запись», выбирая нужный сайт, если у вас их несколько. Далее заполняем поля:
- Условие: ~/shop/category/(.*?)$~ — Условие по которому происходит обработка адреса
- Компонент: bitrix:catalog.element — Компонент, который обрабатывается (данный компонент выводит карточку товара)
- Файл: /shop/category/detail.php — Файл, который обрабатывается (файл, как правило можно увидеть в нашем старом URL /shop/category/detail.php?ID=384)
- Правило: ELEMENT_CODE=$1 — Правило по которому обрабатывается ссылка
Теперь наш URL приобрел вид /shop/category/nazvanie-tovara, но страница категории выводит по-прежнему ссылки на старые URL, для того, чтобы это исправить необходимо перейти к следующему шагу.
Изменение URL в bitrix на ЧПУ в инфоблоке (на странице категории)
Данное действие необходимо, чтобы на странице категории выводились наши новые ЧПУ-шные ссылки.
Идем в административную часть битрикса и заходим Рабочий стол > Контент > Инфоблоки > Типы инфоблоков > Инфоблок-вашей-категории
Открываем инфоблок нужной категории
Нас интересуют поля:
- URL страницы информационного блока: #SITE_DIR#/shop/category/index.php?ID=#IBLOCK_ID#
- URL страницы раздела: #SITE_DIR#/shop/category/index.php?SECTION_ID=#SECTION_ID#
- URL страницы детального просмотра: #SITE_DIR#/shop/category/detail.php?#ELEMENT_ID#
Думаю за что отвечает каждый из URL пояснять не нужно. Для внедрения полного ЧПУ в битрикс вам необходимо будет сделать 3 действия описанные в этой статье — 3 раза (на каждый из УРЛов (раздела, подраздела, карточки товара), но я продолжу показывать пример внедрения ЧПУ на карточке товара.
Нам, стало быть, нужно изменить ссылку страницы детального просмотра. Сделать это достаточно просто — справа от данных полей есть «многоточие», если вы на него нажмете, то интуитивно поймете как выстроить URL. Нам нужно сделать URL такого вида #SITE_DIR#/shop/category/#ELEMENT_CODE#
Сохраняем изменения и смотрим что получилось. Вуаля — на страницах категорий все ссылки на карточки товаров успешно приобрели человекопонятный вид.
Казалось бы, на этом этапе можно закончить внедрение ЧПУ на bitrix, но, для тех кто занимается SEO, либо сотрудничает с СЕО-шниками необходимо сделать еще одну важную вещь.
Внедрение редиректов со старых ссылок на ЧПУ
Это необходимо для склейки дублей страниц, а также для тех, кто закупал или имеет ссылки по старым адресам.
Нам необходимо дописать чуть-чуть кода в файл result_modifier.php элемента каталога. Открыть этот файл можно несколькими способами:
- Со стороны редактирования сайта перейти на карточку товара, выделить компонент, нажать на выпадающее меню рядом с «шестеренкой» > элемент каталога детально (bitrix:catalog.element) > редактировать файл result_modifier.php
- Через ФТП: /bitrix/templates/.default/components/bitrix/catalog.element/ваш-каталог/result_modifier.php
- Через административную часть: Рабочий стол > Контент > Структура сайта > Файлы и папки > bitrixtemplates > .default > components > bitrixcatalog.element > ваш-каталог > result_modifier.php
Открываем файлик и перед закрывающимся ?> дописываем
//редирект для удаления дублей if (($arResult['DETAIL_PAGE_URL'] != $APPLICATION->GetCurPage(false)) and (($arResult['IBLOCK_ID']==10) or ($arResult['IBLOCK_ID']==11) or ($arResult['IBLOCK_ID']==12))) LocalRedirect($arResult['DETAIL_PAGE_URL'],false,'301 Moved permanently');
Где [‘IBLOCK_ID’]==10, 11, 12 и так далее это ID ваших главных категорий (у которых присутствует свой инфоблок — можно посмотреть в том же инфоблоке)
Надеюсь статья была вам полезной, если у вас возникли какие-либо вопросы — пишите в комментариях.



