PHPでURLやドメインを取得する方法

WordPress

phpで様々な処理を行う際、自分のドメインや、URLを取得して処理を分岐する事があります。

ここでは、その方法を解説します。

サーバー変数を取得する

最も簡単な方法はサーバー環境変数を取得する事です。

$_SERVER['HTTP_HOST']
//実行結果 webjin.work
サーバー側の設定によってはHTTP_HOSTでは取得できない場合があるため、その際は$_SERVER[‘SERVER_NAME’]を使用してください。

なお、PHPのマニュアルには以下のように記載されています。

現在のスクリプトが実行されているサーバーのホスト名です。 スクリプトがバーチャルホスト上で実行されている場合は そのバーチャルホスト名となります。

引用:phpマニュアル:$_SERVER

$_SERVER[‘HTTP_HOST’]と$_SERVER[‘SERVER_NAME’]との違い

今回、HTTP_HOST、SERVER_NAMEという2種類のサーバー変数が登場しましたが、サーバーの環境によって、値が同じ場合もありますし、どちらか一方しか取得できない場合もあります。

SERVER_NAMEは上記の説明にもあった通り、Webサーバー側で保持しているホスト名です。
対して、HTTP_HOSTは、ブラウザからリクエストされた名前です。

HTTP_HOSTはポート番号も含めて取得できますが、SERVER_NAMEの場合はポート番号は取得できません。

サーバーの設定によって取得できたりできなかったりする場合があるため、ケースに応じて使い分けましょう。

コメント