Url rewriting 更改/重命名URL:Yii2中的控制器名称

Url rewriting 更改/重命名URL:Yii2中的控制器名称,url-rewriting,yii2,yii2-basic-app,yii-url-manager,Url Rewriting,Yii2,Yii2 Basic App,Yii Url Manager,我想更改URL中的控制器名称。我们可以通过重命名模块中的控制器名称来实现。但是,通过URL管理器,如果我们可以做到这一点。这样会更好 模块:用户, 控制器:api, 行动:索引 现在, 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '<controller:(api)>/<action:\w+>/&

我想更改URL中的控制器名称。我们可以通过重命名模块中的控制器名称来实现。但是,通过URL管理器,如果我们可以做到这一点。这样会更好

模块:用户, 控制器:api, 行动:索引

现在,

'urlManager' => [
  'enablePrettyUrl' => true,
  'showScriptName' => false,
  'rules' => [
        '<controller:(api)>/<action:\w+>/<id:[a-z0-9]+>' => 'user/<controller>/<action>',
        '<controller:(api)>/<action>' => 'user/<controller>/<action>',
    ]
];
但是,我想把它改成

http://dev.example.com/world/index

我怎么做?任何帮助/提示/建议都是值得欣赏的。

您可以通过向规则数组添加项目来创建自定义url规则

因此,在您的情况下,将其插入规则数组

'world/index' => 'api/index'

您可以阅读有关URL规则的更多信息。

您还可以使用ControllerMap

当您使用第三方控制器且无法控制它们的类名时,它非常有用

下面是main.php中组件中的代码,或basic中的web.php 例如:

    'controllerMap' => [           
        'api' => 'app\controllers\WorldController',
                        ]
    'controllerMap' => [           
        'api' => 'app\controllers\WorldController',
                        ]