在 yii2 中参数化路由

Parameterizing Routes in yii2

正在关注此 guide 但不确定如何在以下情况下参数化我的路线

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        "login" => "site/login",
        "sign-up" => "site/sign-up",
        "search" => "site/search",
        "verify-email" => "site/verify-email",
    ],
],

这四个规则的结构基本相同: 如果在 Site 控制器中访问 Action,那么 url 将只是 www.mydomain.com/<action>

我尝试创建规则

'<action:\w+>' => '<site:\w+>/<action:\w+>',

...那没用所以试过了

'<action:(login|sign-up|search|verify-email)>' => 'site/<action:(login|sign-up|search|verify-email)>',

但只得到 'page not found' (#404) 错误。

如有任何建议,我们将不胜感激。 谢谢。

'<action:(login|sign-up|search|verify-email)>' => 'site/<action>',
 ^                                                 ^
 |                                                 |
 pattern                                           route 

路由不应包含任何正则表达式模式(如<paramName:\w+>),您可以使用<paramName>向路由插入参数值,但不能在路由中使用任何正则表达式。