yii2路由-将参数传递到规则中的路由

yii2路由-将参数传递到规则中的路由,yii2,url-routing,Yii2,Url Routing,当用户访问domain/page时,我需要将它们路由到controller/action/100。 我不想通过URL传递任何参数,但想将其添加到URL规则中 我将下面的代码添加到我的配置文件中 'urlManager' => [ 'rules' => [ 'login' => 'site/login', // working 'about' => 'cms/page/10' // Not Working 'abo

当用户访问
domain/page
时,我需要将它们路由到
controller/action/100
。 我不想通过URL传递任何参数,但想将其添加到URL规则中

我将下面的代码添加到我的配置文件中

'urlManager' => [
    'rules' => [
        'login' => 'site/login',  // working
        'about' => 'cms/page/10'  // Not Working
        'about' => 'cms/page?id=10'  // Not Working
    ],
],
第一条规则是工作正常

我可以在url规则中传递路由的参数吗?

您需要明确使用和声明规则:

'urlManager' => [            
    'rules' => [
        'login' => 'site/login',
        [
            'pattern'  => 'about', 
            'route'    => 'cms/page',
            'defaults' => ['id' => 10],
        ]  
    ],
],
如果希望在使用UrlManager创建URL时防止转换,请将
'mode'=>\yii\web\UrlRule::PARSING_ONLY
添加到此规则中(例如
URL::to()
使用UrlManager及其规则,并以相反方向工作,即
URL::to(['cms/page',id'=>10])
将生成一个关于的链接

也考虑在Web服务器上配置重定向。