Решил задачу многоуровневых ЧПУ при следующих ограничениях: 1. Если на конце "/" это URL раздела 2. Если на конце нет "/", то URL продукта 3. Если на одном уровне иерархии есть два раздела с одинаковым символьным кодом - возникает неоднозначность 4. Если два продукта имеют одинаковый символьный код - возникает неоднозначность
Далее в "Обработчике адресов" пишется условие вида:
где: products - папка на сайте в которой находится отображение многоуровневого каталога. CPU ($1) - собственно ЧПУ любого количества уровней. CPU_ELEMENT_CODE ($2) - код элемента, если он есть. $3 - передача управляющих параметров скрипта, чтобы, например, работала версия для печати заданная так: /products/section_1/section_2/product_code_1?print=Y
Файл sectiuon.php принимает на вход CPU как параметр и производит разбор строки с целью получить ID конечного раздела. Когда ID раздела получен - выводится его содержимое. Если же передан еще и CPU_ELEMENT_CODE - то выводим содержимое элемента, а содержимое раздела НЕ выводим. В общем, как использовать расшифрованное ЧПУ это уже вопрос конкретного проекта.
Более удобно получение последнего ID и построение навигационной цепочки - оформить функциями и добавить в init.php. Тогда результат их работы можно записать в глобальные переменные и вызывать везде где надо.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».