Я использую старый Yii (v1), и мне нужно назначить другой домен только двум контроллерам.
Поэтому у меня есть куча контроллеров – HomeController.php, CategoryController.php, GuestbookController.php, ShopController.php, ProfileController.php, все они работают с доменом aaaaa.com, но мне нужны эти контроллеры ShopController.php и ProfileController. php будет работать только с доменом bbbbb.com.
PS Когда пользователь нажимает ссылку «Мой профиль» или «Магазин», домен изменяется на bbbbb.com, когда пользователь нажимает «Главная», «Категории», «Гостевая книга», домен меняется на aaaa.com. И когда пользователь вводит URL-адрес aaaaa.com он идет в «Главная» (HomeController.php) (как сейчас), и когда он входит в bbbbb.com, он переходит в «Магазин» (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', ), ),
Как вы думаете, я ранее определял домены как константы, чтобы не повторять их все время. Также может быть более чистое решение, но это работает 🙂