【问题标题】:Beautifying URLs in Yii在 Yii 中美化 URL
【发布时间】:2014-11-22 02:09:53
【问题描述】:

我有以下文件结构

默认情况下,为访问模块内容而创建的 url 例如 http://127.0.0.1/tmc/user/default/viewMessage

对于其他控制器来说,它是 http://127.0.0.1/tmc/user/booking/index

问题是我想在我的urlManager 中写一条规则,以便两个控制器都可以访问,并且我没有在第一个示例中看到 url 中的default 字。

但是,如果我编写以下规则,我可以消除 default 字,但现在同一模块中的其他控制器将无法工作。感谢您提供这方面的任何帮助

'<module:\w+>/<action:\w+>/<id:(.*?)>' => '<module>/default/<action>/<id>', '<module:\w+>/<action:\w+>' => '<module>/default/<action>',

我目前的 Url Manager 如下

'urlManager' => array( 'urlFormat' => 'path', 'showScriptName' => false, 'rules' => array( '/' => 'site/index', 'login' => 'site/login', 'user' => 'user/default/', '<view:[a-zA-Z0-9-]+>/' => 'site/page', ), ),

【问题讨论】:

    标签: yii url-masking


    【解决方案1】:

    关注Link 进行配置设置

    参考这个Link

    //inside protected/modules/admin/AdminModule.php
    class AdminModule extends CWebModule
    {
      //goes to TaskController instead of DefaultController
      public $defaultController = 'Task';
    
    
    ...
    

    现在,如果您请求,您的 Yii 应用程序将路由到“TaskController”

       index.php?r=admin
        //same as requesting
        index.php?r=admin/task 
    

    【讨论】:

    • 问题是我不想更改默认控制器,我只想从 url 隐藏其名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 2020-02-11
    • 2013-06-04
    相关资源
    最近更新 更多