【发布时间】:2012-11-09 10:43:55
【问题描述】:
【问题讨论】:
【问题讨论】:
要将 URL http://www.mydomain.com/customer/login 指向模块, 在 urlManager 下的配置 (protected/config/main.php):
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(
'customer/login' => 'module/controller/action',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
要使任何控制器动作转到模块/控制器/动作(如下所述),您可以使用:
'<controller:\w+>/<action:\w+>'=>'module/controller/action',
或
'<controller:\w+>/<action:\w+>'=>'module/<controller:\w+>/<action:\w+>',
取决于值的控制器/动作部分(在 => 的右侧)是设定值还是变量。
因此,如果您希望 any 控制器/操作转到 exact url 模块/控制器/操作,您将使用第一个示例。例如,如果您希望控制器/操作 site/test 转到 module/controller/action,您可以使用上面的第一个示例
如果您希望 任何 控制器/动作转到 动态 控制器/动作,请使用第二个。例如,如果您希望控制器/动作 site/test 转到 module/site/test,则可以使用上面的第二个示例
这个新规则必须在 3 个默认 Yii 规则之上,因为它们被读取并且从上到下并匹配它只找到的第一个规则
【讨论】:
是的,您可以在配置中定义任何 url 规则。
您的 url 规则可能如下所示:
'<controller:(foo|bar)>/<action>' => 'module/<controller>/<action>',
【讨论】: