用于漂亮 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',
],
我有以下 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',
],