【问题标题】:Change/Rename Controller Name In URL: Yii2在 URL 中更改/重命名控制器名称:Yii2
【发布时间】:2017-03-10 12:05:34
【问题描述】:

我希望更改 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/api/index

但是,我想把它改成

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

我该怎么做?任何帮助/提示/建议都是可观的。

【问题讨论】:

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


    【解决方案1】:

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

    所以,在你的情况下,将它插入到规则数组中

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

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

    【讨论】:

      【解决方案2】:

      你也使用 ControllerMap

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

      main.php 中的组件下面的代码或基本 web.php 中的代码 例如:

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

      【讨论】:

        猜你喜欢
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 2015-06-17
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多