$ _SERVER ['HTTP_HOST'] =一个不是我的服务器的IP

时间:2011-01-14 22:31:17

标签: php apache http http-headers

我的php脚本有$ _SERVER ['HTTP_HOST']等于与我服务器的ip无关的ip。

有人得到了简单的解释吗?

(我以为某些机器人正在发送一个完全错误的主机头,但我不认为它可以连接到主机头错误的服务器= /)

THX

2 个答案:

答案 0 :(得分:11)

HTTP_HOST由客户端在HTTP请求的Host:部分提供。它可以任意改变,虽然我不明白为什么会想要。请参阅the manual page

请改用$_SERVER['SERVER_NAME']。这由服务器本身定义。

答案 1 :(得分:3)

Host标题与连接到Web服务器完全无关。连接后,Web服务器使用它将HTTP对话路由到特定的虚拟主机。可能是您的脚本所在的虚拟主机是默认虚拟主机,在这种情况下,如果HTTP会话与任何其他虚拟主机不匹配,则会将其路由到该主机。