可能重复: 名字
$_SERVER['HTTP_HOST']
和$_SERVER['SERVER_NAME']
有什么区别?
发布于 2012-12-08 00:24:43
$_SERVER['SERVER_NAME']
给出了主机配置中定义的服务器名称的值(即Apache .conf
文件)。
$_SERVER['HTTP_HOST']
为您提供了实现当前请求的域名,并且更直接地与请求相关。
在大多数应用程序中,HTTP_HOST
通常更有用,因为它与请求直接相关,而SERVER_NAME
可以返回conf文件中的任何值,并且根本不告诉您有关请求的任何信息。
我将给出一个例子,说明HTTP_HOST
可能与SERVER_NAME
有何不同。假设您在Apache中定义了一个具有ServerName of example.com
和IP地址1.2.3.4
的主机。
让我们看看两个传入的请求URL,并显示这些变量之间的区别:
http://www.example.com
HTTP_HOST = www.example.com
SERVER_NAME = example.com
http://1.2.3.4
HTTP_HOST = 1.2.3.4
SERVER_NAME = example.com
因此,HTTP_HOST更多地与请求绑定,而SERVER_NAME则由服务器配置决定。
发布于 2012-12-08 00:03:49
HTTP_HOST
主机的内容:来自当前请求的标题(如果有)。
SERVER_NAME
正在执行当前脚本的服务器主机的名称。如果脚本在虚拟主机上运行,这将是为该虚拟主机定义的值。
http://php.net/manual/en/reserved.variables.server.php
https://stackoverflow.com/questions/13772934
复制相似问题