控制器和具有相同名称的模块

时间:2013-02-06 09:02:38

标签: yii

我有同名的控制器和模块:下载

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(
        'http://'.SITE_DOMAIN.'/<action:(download)>/<url:.*>'=>'<action>',
        'http://<module:(download)>.'.SITE_DOMAIN.'/<code:\w{32}>'=>'<module>',
    ),
)

所以我希望链接如:http://domain.com/download/dir1/dir2/file1.zip

将路由到:application / controllers / DownloadController

其中$ _GET ['url'] =='dir1 / dir2 / file1.zip'

http://download.site.com/some_code

之类的链接

将路由到:application / modules / download / controllers / DefaultController.php

其中$ _GET ['code'] =='some_code'

但现在两种类型的链接都被路由到:application / modules / download / controllers / DefaultController.php

我无法理解为什么

1 个答案:

答案 0 :(得分:1)

试试这个:

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(
        'http://'.SITE_DOMAIN.'/download/<url:.*>'=>'Download/index',
        'http://download.'.SITE_DOMAIN.'/<code:\w{32}>'=>'Download/Default/index',
    ),
)

注意:两个URL都将路由到他们自己的控制器的索引操作。