Для этого вам нужно придерживаться версии с префиксом. Таким образом, для параметра бренда всегда должен стоять префикс brand-
, а для категории - category-
. В противном случае невозможно сказать, что к чему.
Добавьте следующие правила. Это поместит все, что соответствует brand-\w+
в аргумент brand
, и передаст его product/index
. То же самое для категории.
'<brand:brand-\w+>' => 'product/index',
'<category:category-\w+>' => 'product/index',
Чтобы увидеть, что это работает
public function actionIndex($brand = null, $category = null) {
echo "Brand: $brand<br />";
echo "Category: $category<br />";
echo Url::toRoute(['dev/index', 'brand' => 'brand-name']) . '<br />';
echo Url::toRoute(['dev/index', 'category' => 'category-name']) . '<br />';
}