Как создать поддомен в CakePHP?

Версия CakePHP-2.5.5

Мое доменное имя: http://www.thechatfun.com

Ссылка на страницу профиля – http://www.thechatfun.com/users/profile

Ссылка на страницу чата – http://www.thechatfun.com/chats/index

Над двумя ссылками я хочу выглядеть как http://profile.thechatfun.com и http://www.chat.thechatfun.com

Я не могу сделать субдомен в CakePHP.

пожалуйста, помогите мне

Спасибо, ChatFun

Solutions Collecting From Web of "Как создать поддомен в CakePHP?"

До тех пор, пока вы можете настроить свои записи в домене, чтобы указать оба поддомена для чата и профиля на ваш сервер, вы можете изменить файл htaccess в папке веб-корня и добавить.

  <IfModule mod_rewrite.c> #standard cake htaccess stuff ... RewriteCond %{HTTP_HOST} ^profile\.thechatfun\.com$ [NC] RewriteRule ^(.*)$ http://www.thechatfun.com/users/profile/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^chat\.thechatfun\.com$ [NC] RewriteRule ^(.*)$ http://www.thechatfun.com/chats/index/$1 [R=301,L] </IfModule> 

У меня есть это точное требование, и это работает для меня.

Следуйте своему контексту внутри этого каталога: /lib/Cake/Routing/Route , создайте файл SubdomainRoute.php с содержимым:

 class SubdomainRoute extends CakeRoute { public function match($params) { $subdomain = isset($params['subdomain']) ? $params['subdomain'] : null; unset($params['subdomain']); $path = parent::match($params); if ($subdomain) { $path = 'http://' . $subdomain . '.thechatfun.com' . $path; } return $path; } } не class SubdomainRoute extends CakeRoute { public function match($params) { $subdomain = isset($params['subdomain']) ? $params['subdomain'] : null; unset($params['subdomain']); $path = parent::match($params); if ($subdomain) { $path = 'http://' . $subdomain . '.thechatfun.com' . $path; } return $path; } } 

При создании ссылок вы можете сделать следующее, чтобы ссылки указывали на другие поддомены.

 echo $this->Html->link( 'Profile', array('subdomain' => 'profile', 'controller' => 'Users', 'action' => 'profile') ); echo $this->Html->link( 'Chats', array('subdomain' => 'chat', 'controller' => 'Chats', 'action' => 'index') ); 

Ссылка: http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-0.html#routes-can-return-full-urls

profile.thechatfun.com и http://www.chat.thechatfun.com – это разные домены. Один сервер http может обрабатывать оба этих домена, но это не произойдет автоматически.

Предполагая, что ваш веб-сервер – это Apache, вам сначала нужно настроить веб-сервер для правильной обработки этих доменов. Вы можете добавить директиву VirtualHost, чтобы оба этих домена обрабатывались одним и тем же виртуальным хостом и совместно использовали корень документа, или вы могли добавить виртуальный хост для каждого и иметь отдельные корневые каталоги документов для каждого домена.

Сначала ваш веб-сервер получает HTTP-запрос, затем передает запрос на PHP для обработки. Итак, если ваш веб-сервер не настроен должным образом для обработки этих доменов, у вас не будет возможности контролировать это в PHP или CakePHP.