edo1z blog

プログラミングなどに関するブログです

PHPから自動でサブドメインつくる (cakePHP)

よくあるアカウント登録してサブドメイン名登録すると、ユーザ専用のサイトを作成できるようにしたいがやったことがない。

サーバはEC2のAmazonLinuxを使っています。ドメインはRoute53で管理してます。 Route 53のRecord Setsで、*.hoge.comとやれば、どんなサブドメインでもhoge.comと同じように扱うことができます。 後はcakePHPのルーティングでうまく処理できれば終了なんじゃないかと思います。

AppControllerとかでサブドメインの文字列を取得して、その文字列内容に応じて処理を切り替えれば、route.phpの設定なども必要ないんじゃないでしょうか。

private function get_subdomain(){
    $url = explode('.',env('HTTP_HOST'));
    $this->subdomain = $url[0];
}

最初のドットまでを取得しているので、サブドメインなしとか、IPアドレスでアクセスとか、wwwアクセスとかも、最初のドットまでを取得してしまう。それを省けば大丈夫っぽい。あとは$this->subdomainの内容に応じて表示内容を変えればoKじゃないでしょうか?