Я использую RealURL в своем проекте Typo3 4.5.16 для озвучивания URL-адресов определенной страницы. Для этого я использую таблицу поиска, которая сопоставляет определенное количество идентификаторов с их эквивалентами URL.
Например, http://www.example.com/path/to/catalog/chapter1/section1/group1/prod-123/
будет отображаться на страницу «Каталог» с параметрами, сопоставленными для chapter
, section
, group
и product
, соответственно. Обратите внимание, что только ПОСЛЕДНИЙ из этих параметров является релевантным и имеет реальное сопоставление, остальные используются только для "красивого" пути.
Теперь моя проблема: не каждый продукт имеет все уровни предшествующих сегментов пути. Например, URL-адрес другого продукта может быть таким: http://www.example.com/path/to/catalog/chapter1/section4/prod-789/
База данных будет выглядеть так:
Id | seg0 | seg1 | seg2 | seg3 | dummy0 | dummy1 | dummy2 | MapId
----|-----------|-----------|-----------|-----------|-----------|-----------|-----------|-----------
1 | chapter1 | section1 | group1 | prod-123 | 1 | 1 | 1 | 123
2 | chapter1 | section4 | | prod-789 | 1 | 4 | 0 | 789
Вы видите, что отображение имени сегмента просто пусто.
Однако RealURL будет использовать в качестве группы пустую строку и создать chapter1/section4//prod-789
Есть ли способ подавить такое пустое отображение? Будет ли декодирование передавать сегмент следующему параметру (например, noMatch => bypass
для карт значений)
Если нет, можно ли сопоставить сразу несколько сегментов пути с помощью таблицы поиска? (т.е. сопоставление всего пути с настоящим идентификатором)?