Роутинг модулей

Добрый день. Возникла следующая проблема.

Конфигурация роутинга следующая


'rules'=>array(

				'<module:\w+>/<controller:\w+>'=>'<module>/<controller>/index',

				'<module:\w+>/<action:\w+>'=>'<module>/default/<action>',

				/*'<controller:\w+>/<id:\d+>'=>'<controller>/view',

				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',*/

			),

Необходимо чтобы можно было получать доступ к методам default контроллера модуля без его явного указывания, т.е. запрос site.ru/module/test будет выводить module/default/test

Одновременно с этим нужно направлять запросы, явно не указывающие метод в index метод контролера, т.е. запрос site.ru/module/controller будет выводить module/controller/index

В конфигурации выше прописал два правила, но они мешают работе друг друга, работают только по отдельности. Есть ли альтернативные способы реализации этой задачи или как довести до ума текущую реализацию?

Что-то я не очень понял суть первого правила. У всех контроллеров и так по умолчанию вызывается метод actionIndex(), если действие явно не указано.

При применении второго правило actionIndex перестает вызываться и выкидывает ошибку. Обращается только напрямую, с указанием метода.

По вашей логике получается, что если id контроллера и действия совпадут, то может возникнуть ситуация, когда будет вызвано не то действие, что нужно. Если вам не нравится слово default, то можете заменить дефолтный контроллер на какой-нибудь другой, а так остаётся вариант с явным перечислением контроллеров/действий в регулярном выражении или можно попробовать использовать urlSuffix для одного из правил :) Правда всё это выглядит не очень красиво.

Печально это все :mellow:

Куда можно написать, чтобы подобную функцию сделали в следующем релизе? :rolleyes:

Какую именно функцию? Опишите хотя бы на словах :)

Мм, даже не функцию а модификацию скорее… Чтобы при запросе module/action осуществлялся доступ к module/default/action . Мне кажется это удобно и юзерам и разработчикам приложений на yii

Не думаю, что вас кто-то поддержит, потому что путь <module:\w+>/<action:\w+> рассматривается как путь к модулю/контроллеру или контроллеру/действию (если модуля нет), и тут не должно быть неоднозначности. Проверять, существует ли такой контроллер, а если не существует, то подключать дефолтный, довольно накладно. Кстати, никто не запрещает попробовать осуществить это, используя свой класс для url правила: http://www.yiiframework.com/doc/guide/1.1/ru/topics.url#sec-9