用于漂亮 url 的 Yii2 urlmanager 规则失败

Yii2 urlmanager rules for pretty urls fails

我有以下 url 经理路径

        'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            '<controller:(\w|-)+>/' => 'site/index',
            '<module:api\w+>/<controller:\w+>/<action:(\w|-)+>' => '<module>/<controller>/<action>',
         ],
    ]

我要找的是所有 url 都不是通过 api 模块路径通过 site/index 呈现到 运行 但所有其他路径都具有 api/ * 通过模块路径执行。

以上适用于 urls like /login, /auth 但当我 运行 urls like

/administrative/uom 

失败

所以基本上我希望所有 url 都通过 site/index 重定向,但所有 url 都以 api 作为前缀,例如 api/auth/login 运行 通过他们各自的控制器。 我添加了一个 api 模块来处理这个问题。

我还需要添加什么才能使这项工作正常进行?

添加规则时总是从更详细到更不详细。并且您仅为控制器添加了一般规则,因此没有 URL 与操作匹配。这样做

'rules' => [
    'api/<controller:\w+>/<action:[\w\-]+>' => 'api/<controller>/<action>',
    '<controller:[\w\-]+>/<action:[\w\-]+>' => 'site/index',
    '<controller:[\w\-]+>/' => 'site/index',
],