Ok, I've tried a little bit around, and I've got a working solution.
You can create a custom class and tell the urlManager (in protected/config/main.php) to use this class:
…
'urlManager' => array(
'class' => 'application.class.UrlManager',
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'kontakt' => 'site/contact',
)
),
…
Now, in your UrlManager class, you can overwrite the setRules function which makes the UrlManager class looks something like this:
class UrlManager extends CUrlManager
{
public function setRules($arrRule)
{
$arrModule = Yii::app()->modules;
$arrModule = (!is_array($arrModule)) ? array() : $arrModule;
foreach ($arrModule as $strModule => $arrItem)
{
$strFile = Yii::app()->basePath.'/modules/'.$strModule.'/config/rules.php';
if (file_exists($strFile))
{
$arrRule = CMap::mergeArray(
$arrRule,
require($strFile)
);
}
}
parent::setRules($arrRule);
}
}
this setRules function looks for all enabled modules, and merges (if existing) the "rules.php" from config dir of module with the given array of rules (these ones, defined in your main config file).
I've tested this with two modules, and it works.
EDIT:
Updated Yii to version 1.0.5 and it seem, like the above posted solution doesn't work with the new release (only with 1.0.4).