- Настройка ЧПУ для умного фильтра 1С Битрикс
- Для чего нужен ЧПУ
- Настройка адресов для инфоблока
- Автоматическая транслитерация XML_ID
- Настройка компонента
- Заключение
- Не работают ЧПУ в битриксе: 3 причины
- Настраиваем ЧПУ фильтров для интернет-магазинов на Битрикс
- Организационный этап. Проектирование ЧПУ-адресов для Bitrix.
- Технический этап. Программирование ЧПУ фильтров на Битриксе.
- Выводы
Настройка ЧПУ для умного фильтра 1С Битрикс
Давайте рассмотрим одну из часто-встречающихся задач при создании интернет-магазина на 1С Битрикс, а именно настройку ЧПУ адресов каталога и умного фильтра. Дело в том, что по умолчанию каталог и фильтр работают без ЧПУ используя параметры передаваемые в адресной строке браузера (GET параметры) и URL адреса страницы выглядят трудно-читаемыми и не запоминающимися.
Для чего нужен ЧПУ
Термин ЧПУ в веб-разработке, означает ЧеловекоПонятный Урл, от английского friendly url (дружелюбный урл). Обычно он представляет собой краткий, хорошо читаемый адрес страницы, обычно транслитерированное (т.е. написанное на «латинице») слово или словосочетание, которое легко запомнить человеку. Кроме того, такой адрес отражает значение или содержимое страницы, например так:
- /kontakti/ — страница контактов
- /catalog/televizori/ — каталог товаров, раздел «телевизоры»
Как видите такой URL легко воспринять и даже запомнить. Но для чего ещё нужно внедрять ЧПУ? Дело в том, что наличие ЧПУ адресов, не только страниц, но и различных ресурсов (картинок, видео) является требованием поисковых систем Яндекс, Google и д.р. Это своего рода один из показателей качества вашего сайта. Такие страницы быстрее проходят индексирование и попадают в поисковую выдачу.
Настройка адресов для инфоблока
В первую очередь нам необходимо перейти в настройки информационного блока каталога (или другого если речь не идёт о ЧПУ для каталога и фильтра) на вкладке «Инфоблок» есть 3 свойства, задающие своего рода шаблон на основе которого система построит URL адрес страницы:
- URL страницы информационного блока
- URL страницы раздела
- URL страницы детального просмотра
Каждое из этих свойств поддерживает набор ключей, которые система заменит на реальные значения в процессе создания URL, рассмотрим ключевые из них:
- #SITE_DIR# — корневая папка сайта, обычно она необходима когда мы имеем многоязычный сайт и английская версия лежит в папке /en/
- #SECTION_CODE# — символьный код текущего раздела
- #SECTION_CODE_PATH# — путь из символьных кодов разделов, обычно применяется когда на одном и том же уровне вложенности каталога есть разделы с одинаковым наименованием и как следствие кодом
- #ELEMENT_CODE# — символьный код текущего элемента
Например такой шаблон #SITE_DIR#/catalog/#SECTION_CODE#/ в процессе работы компонента каталога, может быть преобразован в /catalog/televizori/ , а #SITE_DIR#/catalog/#SECTION_CODE#/#ELEMENT_CODE#/ в /catalog/televizori/televizor_samsung_ue32m/.
Эти шаблоны — первая часть настройки ЧПУ, далее следует позаботиться о наличие читаемого кода для свойств инфоблока и их значений. Для этого перейдём на вкладку «Свойства» и рассмотрим несколько представленных в каталоге свойств, материал и цвет:
Каждое свойство инфоблока имеет параметр «Код», это мнемонический код свойства, тот самый который будет позже поставлен в URL адрес, когда мы захотим отфильтровать каталог по этому свойству. И чтобы получившийся в итоге ЧПУ отвечал критериям «понятности», код свойства должен быть читаемым и понятным для человека, в данном случае «материал» и «цвет».
Так же не стоит забывать, что для свойств типа «список» можно настроить понятный код значения свойства.
В данном случае, в качестве кода значения свойства, выступает атрибут XML_ID именно его система подставит в URL адрес, когда мы захотим отфильтровать каталог одежды по свойству «цвет». Если, оставить эти поля пустыми, при сохранении настроек информационного блока, битрикс сгенерирует длинную хеш-строку и подставит её в качестве XML_ID
В данном примере вся строка XML_ID розового цвета выглядит так: 4ed329daf7a1bd6ec22074f850e50be1 — не очень читабельно, не так ли? К сожалению 1С Битрикс не имеет штатного функционала позволяющего автоматически транслитерировать значения свойств и читаемый XML_ID.
Автоматическая транслитерация XML_ID
Чтобы не переводить название цветов вручную каждый раз когда мы добавляем вариант значения свойства цвет, можно подвесить свой обработчик на событие обновления этого свойства. В моём случае свойство цвет является «списком» поэтому нам следует выбрать обработчик OnBeforeIBlockPropertyUpdate (ссылка на документацию). Т.е. при обновлении нам нужно перебрать значения списка, выбрать те у которых не заполнен XML_ID (чтобы не затронуть XML_ID которые возможно были заданы вручную), затем транлитерировать значение списка (название цветов на русском языке) и записать в XML_ID значения. Поехали:
Этот код необходимо добавить в файл init.php. Теперь если заполнить значения цветов и не указать XML_ID вот так:
И сохранить настройки свойства а затем и инфоблока, отработает наше событие и недостающие XML_ID будут заполнены согласно нашему обработчику.
Подобным образом вы можете обработать другие типы свойств.
Настройка компонента
Перейдём к настройке компонента «Каталог товаров». Проще всего сделать это из публичной части перейдя в режим правки. В окне настроек компонента находим блок «Управление адресами страниц» и задаём следующие настройки:
- Включить поддержку ЧПУ — Да
- Каталог ЧПУ (относительно корня сайта) — это корневая папка каталога
- Список разделов — можно пропустить, обычно он выводится на главной странице каталога или вынесен в меню
- Раздел — #SECTION_CODE#/ (это по сути то же самое что и в настройках инфоблока, только этот путь уже включает в себя #SITE_DIR#/catalog/)
- Детальная информация — #SECTION_CODE#/#ELEMENT_CODE#/ (аналогично предыдущему пункту)
- Таблица сравнения — по умолчанию compare/
- Url раздела для умного фильтра — #SECTION_CODE#/filter/#SMART_FILTER_PATH#/ (самый интересный пукнт) в #SMART_FILTER_PATH# битрикс подставит часть URL собранную из кодов свойств и XML_ID их значений при фильтрации (те самые коды которые мы готовили выше в статье).
Заключение
На самом деле стандартные страницы фильтра можно значительно улучшить с точки зрения SEO оптимизации, например вывести уникальные мета-данные страницы для каждого урла, задать уникальный заголовок h1, вывести SEO тексты. Чтобы внедрить все эти фишки, читайте другую статью по тонкой настройке фильтра.
Источник
Не работают ЧПУ в битриксе: 3 причины
При разработке магазина на битриксе достаточно часто возникают сложности с настройкой ЧПУ на сайте. Не столь важно, в компоненте ли каталога, новостей, или же каких-либо иных. Казалось бы, настройка ЧПУ по документации битрикса достаточно тривиальна, и там не может что-то пойти не так. Однако, опыт автора настоящей статьи, и те форумы, куда автор обращался за решением, говорят об обратном. Проблема существует и достаточно актуальна.
Ниже представлены 3 самые распространенные причины того, почему могут не работать настройки ЧПУ в битриксе. Причем могут не работать ЧПУ для всех типов страниц компонента, или же только для детальных страниц. Итак, причины могут быть следующими:
- Неправильные настройки ЧПУ в настройках инфоблока и компонента
- Ошибки в urlrewrite.php
- Некорректные правила в .htaccess
Следует рассмотреть каждую причину детально.
1. Неправильные настройки ЧПУ в инфоблоке и компоненте
Данная причина является самой простой по своему характеру и самой легкой в исправлении. Собственно, диагностику корректности настройки ЧПУ на сайте нужно начать с этого шага.
Подробное описание о том, как настроить ЧПУ для компонента можно найти в справке (учебных курсах) битрикса. Однако, в качестве примера, хотелось бы привести наиболее типичные настройки ЧПУ для каталога товаров в интернет-магазине:
Шаг А. Настройки ЧПУ в инфоблоке
На вкладке настроек инфоблока ( “Контент” > “Инфоблоки” > “Типы инфоблоков” > Далее индивидуально ) указываем:
Шаг Б. Настройки ЧПУ в компоненте каталога
В настройках компонента, на вкладке “управление адресами страниц”, указываем:
Сохраняем изменения, сбрасываем кеш, проверяем результат. Если ЧПУ не работают, переходим к шагу 2.
2. Проблемы с файлом urlrewrite.php
Говоря простыми словами, urlrewrite.php, лежащий в корне сайта — это файл, в котором содержатся правила, в которых сообщается серверу о том, как обрабатывать тот, или иной файл.
В самом деле, может быть несколько причин, почему правила, записанные в urlrewrite, могут работать некорректно:
- Нарушена очередность правил
- Ошибка сохранения при перезаписи файла CMS
- CMS, при сохранении настроек компонента перезаписала настройки, ранее внесенные в файл руками
- Ошибки в путях, синтаксисе и т.д.
Источник
Настраиваем ЧПУ фильтров для интернет-магазинов на Битрикс
Это завершающая статья из серии о решении сложных задач поисковой оптимизации на Битрикс.
Хороший хирург поможет плохому танцору.
Что говорит оптимизатор? Семантическое ядро будет состоять из:
нескольких десятков высокочастотных запросов вроде
купить квартиру
аренда склада москва
сотен запросов средней частоты вроде
участки под строительство дома новая москва
продажа земли промышленного назначения в калужской области
В каталогах электроники, мебели или любого другого штучного товара будут еще и десятки тысяч низкочастотников вроде:
Кухня Artika фабрики Pedini spa
Компактный асинхронный двигатель Siemens 1PH8 для SINAMICS S120
В недвижимости так обычно не делают, так как у отдельных позиций (квартиры, например), нет собственных имен.
Для каждого запроса нужна отдельная осмысленная страница.
Причем для нее оптимизатор захочет задавать правильные title, keywords и seo-тексты. Для отдельных страниц вручную это легко делать с помощью модуля Инструменты SEO-специалиста , а если для всех сразу — придется прописать шаблоны автоматического формирования заголовков и сео-текстов.
Для высокочастотных запросов подходят страницы разделов сайта из меню, для низкочастотных страниц — детальные страницы отдельных элементов.
А вот со среднечастотными на первый взгляд есть проблема — не видно на сайте таких страниц.
И тут оптимизатора осеняет: а давайте продвигать страницы поисковой выдачи, отфильтрованные списки элементов.
Обычно такие страницы специально закрыты от индексации и SEO-шника не беспокоят заголовки, ключевые слова и адреса таких страниц. Неудивительно, что Битрикс, который умеет делать красивые ЧПУ-адреса, для страниц поиска генерирует такие ссылки:
Вот мы и подошли к сути задачи. Нужно, чтобы для разных условий поиска по сайту создавались адреса, предельно близкие к соответствующим поисковым запросам.
Например, так.
Механизм параметрического поиска — сложный. Особенно если применяется умный фильтр Битрикс , автоматически подстраивающий доступные параметры под то, что фактически есть в базе.
Хитрых задач с таким поиском хватает и без ЧПУ.
Задача создания ЧПУ-адреса для фильтров вполне решаемая.
Общая схема действий программиста и оптимизатора такова:
Организационный этап. Проектирование ЧПУ-адресов для Bitrix.
Выделить те параметры поиска, которые должны преобразовываться в слова на русском языке (транслитом). Остальные допустимо оставить get-параметрами.
Оптимизатору желательно хорошо подумать и не быть максималистом. “Сделать все” — плохая идея.
Пример хорошего решения. Три параметра формируют предложение на русском языке.
Утвердить шаблоны ЧПУ (может быть, еще заголовков и сео-текстов), которые будут формироваться. Желательно проговорить порядок слов в тексте и даже правила транслитерации. Например, в примере выше слово “купить” в адресе фигурирует как “prodaja”.
Результатом этого этапа должно стать ТЗ на ЧПУ-адреса фильтров. Работа непростая, и подумать лучше несколько раз.
Сложность реализации ТЗ очень зависит от числа параметров, связей между ними и сложности шаблона ЧПУ-адреса.
Технический этап. Программирование ЧПУ фильтров на Битриксе.
Рассмотрим решение задачи с точки зрения программиста. Для того, чтобы формировать и обрабатывать человеко-понятные адреса вроде
нужно уметь сопоставлять их с исходными, например такими
Можно полностью переписать компонент фильтрации, “научив” его работать с такими адресами.
Мы рекомендуем стандартные компоненты по возможности не трогать. Вместо этого нужно лишь слегка изменить обработку адресов на входе:
Компонент фильтрации остается без изменений и посылает пользователя на страницу с обычным “олдскул”-адресом.
На целевой странице написан специальный программный фрагмент, который понимает, что открыт адрес, который нужно преобразовать к ЧПУ-виду. Он делает такое преобразование и делает переадресацию на ЧПУ-страницу.
При открытии ЧПУ-страницы тот же программный элемент, понимая, какие значения закодированы в ЧПУ-адресе, заполняет массив REQUEST теми значениями, которые нужны для работы стандартных компонент.
Технически поведение ЧПУ-фильтра реализуется классом, который в проекте среднего уровня содержит 400 строк php-кода. Больше нюансов — сложнее реализация.
Грубая оценка добавления ЧПУ к уже работающему фильтру — от 20 до 70 часов работы.
Выводы
Скажите честно, доктор, эти ваши лечебные травы приносят хоть какую-нибудь пользу?
-А как же! Недавно я купил сыну квартиру в Москве, а дочке достраиваю дом…
Программист и оптимизатор не враги. Хороший разработчик обязан уметь слушать разумные доводы SEO-специалиста. Помните — миром правит маркетинг, а технологии ему служат.
А оптимизаторам нужно уметь применять в убеждении не астрологию, а аналитику.
Что же касается Битрикса — в умелых руках он может все, что нужно оптимизатору.
Мы разбираемся в интернет-маркетинге и при работе над сайтами готовим их к будущему продвижению.
Обращайтесь за решением ваших задач по оптимизации сайтов , с удовольствием поможем.
Это завершающая статья из серии о решении сложных задач поисковой оптимизации на Битрикс. Обратите внимание на другие статьи серии:
Источник