yii2 urlmanager规则冲突

时间:2016-01-05 17:50:45

标签: module yii2 yii-url-manager

我在Yii2 Framework中使用以下代码作为url manager:

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            '<module:\w+>/<action:\w+>' => '<module>/default/<action>'
        ]
    ],

但是。当启用从模块的url中删除默认值的规则时,控制器的规则将停止工作。

问题出在我的代码处?

感谢。

1 个答案:

答案 0 :(得分:1)

问题是 - 您的模块规则会覆盖控制器1。 <module><controller>不是UrlManager的关键字,因此 - 在您的情况下,它不起作用。 您的Url-config应该是这样的:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        '<module:\w+>/<controller:\w+><action:\w+>' => '<module>/default/<action>'
    ]
],

它将随时使用default控制器。你真的想要吗? 最好只使用'<module:\w+>/<controller:\w+><action:\w+>' => '<module>/<controller>/<action>'