アクセスされたURLのホスト名を取得するには

リダイレクト用のパス作りにユーザーがURL欄に入力した
ホスト名、ポート名が取得したいが*1これがなかなか取れない、、

アクセス先が http://xxxxxx/yyyy/zzz.php だとすると

$_SERVER['PHP_SELF']
ホスト名、ポート名は入らない(/yyyy/zzz.php
$_SERVER['SERVER_NAME']
実際にアクセスした値ではなくサーバに設定されているホスト名が入る(xxxx1)
$_SERVER['REQUEST_URI']
ホスト名、ポート名は入らない(/yyyy/zzz.php
$_SERVER['HTTP_HOST']
それっぽい値が入る(xxxxxx)

HTTP_HOSTが一番いい感じ。
説明を見ると

現在のリクエストにHost:ヘッダが もしあればその内容。

(@_@;)
Hostヘッダねぇ。
しっかりと調べたことはなかったのでついでに調べてみる。

HTTP Header Fields - Studying HTTP
どのホスト名に対してのアクセスかを記述するヘッダーっぽいから問題ないかな。

あとは必須になっていないHTTP/1.0の対応さえ何とかすれば、、

*1:port forwardingやreverse proxyを使用しての接続なのでホスト名を固定できない