首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$_SERVER['HTTP_HOST']包含端口号too =/

问$_SERVER['HTTP_HOST']包含端口号too =/
EN

Stack Overflow用户
提问于 2010-12-22 07:11:12
回答 2查看 14.8K关注 0票数 11

我不知道,也许是个虫子。

我的服务器上有2个virutalhost。

虚拟主机1.com虚拟主机2.com

如果我使用端口80打开virtualhost1.com (virtualhost1.com:80)

代码语言:javascript
复制
$_SERVER['HTTP_HOST']='virtualhost1.com';

但是如果我打开virtualhost2.com:80

代码语言:javascript
复制
$_SERVER['HTTP_HOST']='virtualhost2.com:80'; // NOTE: with port number

我能知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-22 07:21:46

$_SERVER['HTTP_HOST']的值直接取自Host: HTTP请求报头。发出请求的客户端似乎正在以这种方式填充它。

我建议使用$_SERVER['SERVER_NAME'],因为它的值将从您的虚拟主机配置中设置。然而,正如Flimm在下面提到的,即使是SERVER_NAME的可靠性也仍然依赖于服务器配置(查看this answer了解更多信息)。

票数 21
EN

Stack Overflow用户

发布于 2016-05-20 21:17:25

下面的函数总是返回没有端口的实际主机(用户输入的主机),而且几乎是可靠的:

代码语言:javascript
复制
function getRealHost(){
   list($realHost,)=explode(':',$_SERVER['HTTP_HOST']);
   return $realHost;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4504831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档