суббота, 2 февраля 2013 г.

Bitrix и urlrewrite

Недавно потребовалось в интернет-магазине на Битриксе отображать урлы с русскими буквами, например, /catalog/Коллекция_Collection-Name
Для этого пришлось подредактировать файл urlrewrite.php и добавить следующее правило:
"CONDITION" => "#^/catalog/([a-zA-Z0-9а-яёА-ЯЁ_\\-]+)$#",
"RULE" => "SECTION_CODE=$1",
"PATH" => "/store/collection.php",
Казалось бы, это все. Но нет. Так как сайт работал в кодировке utf-8, то Битрикс нагло игнорировал "узнавание" русских букв. Данная проблема (как и в большинстве случаев) решается установкой флага u. В итоге, правило приобретает такой вид:
"CONDITION" => "#^/catalog/([a-zA-Z0-9а-яёА-ЯЁ_\\-]+)$#u",
"RULE" => "SECTION_CODE=$1",
"PATH" => "/store/collection.php",
Теперь Битрикс работает как надо.

Еще немного трюков: