アクセスされた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を使用しての接続なのでホスト名を固定できない