普通に$_SERVER['HTTP_HOST']とやると、リバースプロキシの場合にはアクセスしてきたURLのドメイン部分ではなく、PHPが動いているサーバのIPアドレスを取得してしまう。
リバースプロキシでURLのドメイン部分を取得するには、$_SERVER['HTTP_HOST']の代わりに$_SERVER['HTTP_X_FORWARDED_HOST']を使う。
クライアントのIPアドレスを取得したい場合も同様に、$_SERVER['REMOTE_ADDR']の代わりに$_SERVER['HTTP_X_FORWARDED_FOR']を使う。
具体的な例は、DevSyndicate. - こういう場合を想定-リバースプロキシしたときの$_SERVER-WIKIがわかりやすい。
マニュアルに載ってない(※note欄には載っている)し、"X"が付いているのでまだBeta版的な扱いなのかな?
0 件のコメント:
コメントを投稿