在URL中更改/重命名控制器名称:Yii2

时间:2017-03-10 12:05:35

标签: url-rewriting yii2 yii2-basic-app yii-url-manager

我正在寻找更改网址中的控制器名称。其中,我们可以通过重命名模块中的控制器名称来实现。但是,如果我们能够做到这一点,通过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/api/index

但是,我希望将其改为

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

我该怎么办?任何帮助/提示/建议都很明显。

2 个答案:

答案 0 :(得分:0)

您可以通过向rules数组添加项来创建自定义URL规则。

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

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

您可以详细了解网址规则here

答案 1 :(得分:0)

您也使用ControllerMap

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

预先在main.php中的组件中的代码或者基本的web.php中的代码 例如:

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