猿问

漂亮 url 的 Yii2 urlmanager 规则失败

我有以下网址管理器路径


        '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 模块来处理这个问题。


我还需要添加什么才能完成这项工作?


胡子哥哥
浏览 129回答 1
1回答

不负相思意

添加规则时总是从更详细到不太详细。并且您只为控制器添加了一般规则,因此没有与操作匹配的 URL。做这个'rules' => [&nbsp; &nbsp; 'api/<controller:\w+>/<action:[\w\-]+>' => 'api/<controller>/<action>',&nbsp; &nbsp; '<controller:[\w\-]+>/<action:[\w\-]+>' => 'site/index',&nbsp; &nbsp; '<controller:[\w\-]+>/' => 'site/index',],
随时随地看视频慕课网APP
我要回答