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

Assign different domain for two controllers only

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

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

P.S。当用户单击 "My Profile" link 或 "Shop" 时,域更改为 bbbbb.com, 当用户单击 "Home"、"Categorys"、"Guestbook" 时,域更改为 aaaaa.com 当用户输入 URL aaaaa.com 时,它会转到 "Home" (HomeController.php)(就像现在一样),当他输入 bbbbb.com 时,它会转到 "Shop" (ShopController.php)

都是一页,一个导航栏。

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

您可以使用 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',

    ),
),

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