在Yii中美化URL

时间:2014-09-27 00:37:32

标签: yii url-masking

我有以下文件结构

enter image description here

默认情况下,为访问模块内容而创建的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>',

我目前的网址管理器如下

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

1 个答案:

答案 0 :(得分:0)

按照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