我不知道这可能是一个错误。
我的服务器上有 2 个虚拟主机。
virtualhost1.com virtualhost2.com
如果我使用端口 80 (virtualhost1.com:80) 打开 virtualhost1.com
$_SERVER['HTTP_HOST']='virtualhost1.com';
但是如果我打开 virtualhost2.com:80
$_SERVER['HTTP_HOST']='virtualhost2.com:80'; // NOTE: with port number
我能知道为什么吗?
最佳答案
$_SERVER['HTTP_HOST']
的值直接取自 Host:
HTTP 请求 header 。看起来请求客户正在以这种方式填写它。
我建议使用 $_SERVER['SERVER_NAME']
因为它的值将从您的虚拟主机配置中设置。然而,正如 Flimm 在下面指出的那样,即使 SERVER_NAME
的可靠性仍然取决于服务器配置(查看 this answer 了解更多信息)。
关于php - $_SERVER ['HTTP_HOST' ] 也包含端口号 =/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504831/