我正在使用旧的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)
它的所有页面都有一个导航栏。
答案 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',
),
),
如您所想,我之前已将域定义为常量,而不必一直重复它们。也可能有一个更清洁的解决方案,但这个工作:)