我在Yii2 Framework中使用以下代码作为url manager:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<module:\w+>/<action:\w+>' => '<module>/default/<action>'
]
],
但是。当启用从模块的url中删除默认值的规则时,控制器的规则将停止工作。
问题出在我的代码处?
感谢。
答案 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>'