phpで様々な処理を行う際、自分のドメインや、URLを取得して処理を分岐する事があります。
ここでは、その方法を解説します。
サーバー変数を取得する
最も簡単な方法はサーバー環境変数を取得する事です。
$_SERVER['HTTP_HOST']
//実行結果 webjin.work
サーバー側の設定によってはHTTP_HOSTでは取得できない場合があるため、その際は$_SERVER[‘SERVER_NAME’]を使用してください。
なお、PHPのマニュアルには以下のように記載されています。
現在のスクリプトが実行されているサーバーのホスト名です。 スクリプトがバーチャルホスト上で実行されている場合は そのバーチャルホスト名となります。
$_SERVER[‘HTTP_HOST’]と$_SERVER[‘SERVER_NAME’]との違い
今回、HTTP_HOST、SERVER_NAMEという2種類のサーバー変数が登場しましたが、サーバーの環境によって、値が同じ場合もありますし、どちらか一方しか取得できない場合もあります。
SERVER_NAMEは上記の説明にもあった通り、Webサーバー側で保持しているホスト名です。
対して、HTTP_HOSTは、ブラウザからリクエストされた名前です。
HTTP_HOSTはポート番号も含めて取得できますが、SERVER_NAMEの場合はポート番号は取得できません。
サーバーの設定によって取得できたりできなかったりする場合があるため、ケースに応じて使い分けましょう。
コメント