Я создаю веб-приложение SaaS в codeigniter и пытаюсь определить, как маршрутизировать конкретный контроллер, основываясь на том, существует поддомен или нет.
В настоящее время у меня это так, если вы установите URL-адрес subdomain.example.com
, мой контроллер по умолчанию проверяет, существует ли субдомен в URL-адресе в базе данных, и если нет, то отображает страницу ошибки.
public function __construct()
{
parent::__construct();
$subdomain_arr = explode('.', $_SERVER['HTTP_HOST'], 2); //creates the various parts
$subdomain_name = $subdomain_arr[0]; //assigns the first part
//echo "subdomain_name = $subdomain_name";
// if the subdomain does not exist, redirect to error page
if(!$this->subdomainExists($subdomain_name)) {
redirect('error/index');
} else {
$this->subdomain = $subdomain_name;
}
}
Это прекрасно работает для URL, когда пользователь вводит субдомен, но теперь, если пользователь вводит URL без субдомена, например example.com
, я хочу использовать другой контроллер.
Каков наилучший способ достичь этого? Я думал о том, чтобы сделать следующее, но не похоже, чтобы перенаправление происходило каждый раз, когда кто-то обращается к example.com
.
// if no subdomain was entered, redirect to controller 'aDifferentController'
// else if a subdomain was entered, check that it exists in the database and if not redirect to an error page.
if(the url entered does not contain a subdomain) {
redirect('aDifferentController');
} else if(!$this->subdomainExists($subdomain_name)) {
redirect('error/index');
} else {
$this->subdomain = $subdomain_name;
}