подскажите по urlManager rules

Нужно сделать, чтобы в каталоге товаров поиск был в урле:

catalog/b/b_данные/c/c_данные/d/d_данные/e/e_данные/f/f_данные/

при чем количество и порядок следования параметров может быть условно любым(параметров ограниченное количество)

Как это грамотно реализовать?

Перечислять все комбинации параметров как-то совсем не улыбает :(

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/e/<e:\d?>/f/<f:\d*?>/p/<p:\d*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/e/<e:\d?>/f/<f:\d*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/f/<f:\d?>/p/<p:\d*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/f/<f:\d?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/e/<e:\d?>/p/<p:\d*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.?>/e/<e:\d?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/d/<d:.*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>/p/<p:\d*?>’=>‘catalog’,

‘catalog/b/<b:.?>/c/<c:.?>’=>‘catalog’,

‘catalog/b/<b:.*?>’=>‘catalog’,

Написать свой класс для частных случаев обработки полученного URL, который содержит два public метода

[list=1]

[*]createUrl($route,$params=array(),$ampersand=’&’) - для построение правильных URL согласно нашим хитрым правилам

[*]parseUrl($request) - для разбора полученного URL, в случае успеха возвращает строку "controller/action" или пустое значение в противном случае.

[/list]

Класс вставляем в нужное место в список прочих правил UrlManager в файле конфигурации:




'urlManager'=>array(

	'urlFormat'=>'path',

	'rules'=>array(

..................

		array(

		'class' => 'application.components.MyCustomUrlRule',

		),

..................

	),

),




Подробности здесь http://www.yiiframework.com/doc/guide/1.1/ru/topics.url#sec-9