我有以下网址管理器路径 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '<controller:(\w|-)+>/' => 'site/index', '<module:api\w+>/<controller:\w+>/<action:(\w|-)+>' => '<module>/<controller>/<action>', ], ]我正在寻找的是所有未通过 api 模块路径呈现的 url 以通过站点/索引运行,但所有其他具有 api/* 的路径将通过模块路径执行。以上适用于 /login、/auth 等网址,但是当我运行网址时/administrative/uom 它失败所以基本上我希望所有的 url 都被重定向,site/index但是所有以 api 作为前缀的 url 都喜欢api/auth/login通过各自的控制器运行。我添加了一个 api 模块来处理这个问题。我还需要添加什么才能完成这项工作?
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
添加规则时总是从更详细到不太详细。并且您只为控制器添加了一般规则,因此没有与操作匹配的 URL。做这个
'rules' => [
'api/<controller:\w+>/<action:[\w\-]+>' => 'api/<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>' => 'site/index',
'<controller:[\w\-]+>/' => 'site/index',
],
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消