仅为两个控制器分配不同的域

时间:2015-02-02 11:30:57

标签: php yii

我正在使用旧的Yii(v1),我只需要为两个控制器分配一个不同的域。

所以我有一堆控制器 - HomeController.php,CategoryController.php,GuestbookController.php,ShopController.php,ProfileController.php,它们都与域aaaaa.com一起工作,但我需要控制器ShopController.php和ProfileController.php只适用于域bbbbb.com。

P.S。当用户点击"我的个人资料"链接或" Shop"域名更改为bbbbb.com, 当用户点击" Home"," Categorys","留言簿"域名更改为aaaaa.com 当用户输入URL aaaaa.com时,它会进入" Home" (HomeController.php)(就像现在一样)当他进入bbbbb.com时,它会进入" Shop" (ShopController.php)

它的所有页面都有一个导航栏。

1 个答案:

答案 0 :(得分:2)

因此,您希望从两个不同的域提供应用程序的不同部分,这两个域都是指向同一应用程序的同一服务器上的虚拟主机。

您可以使用Yii的重写规则轻松完成此操作,因为您可以在定义时指定完整主机。

这是我的应用程序中的一个示例,用于" happyanalytics" " happyseotools"博客:

'urlManager'=>array(
    'urlFormat'=>'path',
    'urlSuffix'=>'/',
    'showScriptName'=>false,
    'rules'=>array(

        'http://'._HOST_HAPPYANALYTICS_.'/' => '/analytics/default/index',
        'http://'._HOST_HAPPYANALYTICS_.'/tour/' => '/analytics/default/tour',
        'http://'._HOST_HAPPYANALYTICS_.'/pricing/' => '/analytics/default/pricing',
        'http://'._HOST_HAPPYANALYTICS_.'/support/' => '/analytics/default/support',
        'http://'._HOST_HAPPYANALYTICS_.'/login/' => '/analytics/default/login',
        'http://'._HOST_HAPPYANALYTICS_.'/forgot_password/' => '/analytics/default/forgot_password',
        'http://'._HOST_HAPPYANALYTICS_.'/signup/' => '/analytics/default/register',
        'http://'._HOST_HAPPYANALYTICS_.'/dashboard/' => '/analytics/dashboard/index',
        'http://'._HOST_HAPPYANALYTICS_.'/dashboard/website/<id_website>/<action:(visits|keywords|pages|debug|realtime|configuration|trackingCode)>/' => '/analytics/dashboard/<action>',
        'http://'._HOST_HAPPYANALYTICS_.'/dashboard/website/<id_website>/' => '/analytics/dashboard/website',
        'http://'._HOST_HAPPYANALYTICS_.'/dashboard/<action>/*' => '/analytics/dashboard/<action>',


        'http://'._HOST_HAPPYSEOTOOLS_.'/' => 'site/index',
        'http://'._HOST_HAPPYSEOTOOLS_.'/about/' => 'site/about',
        'http://'._HOST_HAPPYSEOTOOLS_.'/contact/' => 'site/contact',
        'http://'._HOST_HAPPYSEOTOOLS_.'/smile.gif' => 'site/tracker',
        'http://'._HOST_HAPPYSEOTOOLS_.'/subscription/*' => 'site/subscription',


        'http://'._HOST_HAPPYSEOTOOLS_.'/blog/posts/<tag:.*?>/'=>'/blog/post/index',
        'http://'._HOST_HAPPYSEOTOOLS_.'/blog/'=>'/blog/post/index',
        'http://'._HOST_HAPPYSEOTOOLS_.'/blog/<slug>/'=>'/blog/post/view',

    ),
),

如您所想,我之前已将域定义为常量,而不必一直重复它们。也可能有一个更清洁的解决方案,但这个工作:)