PHP:$\u服务器变量:$\u服务器[';HTTP#u主机';]与$\u服务器[';服务器名称';]
可能重复:PHP:$\u服务器变量:$\u服务器[';HTTP#u主机';]与$\u服务器[';服务器名称';],php,Php,可能重复: $\u SERVER['HTTP\u HOST']和$\u SERVER['SERVER\u NAME']之间的区别是什么?HTTP\u HOST是客户端发送的主机:头。因此,它可能会有点不可信服务器\u名称由服务器的配置决定,与用户输入无关 行为上的差异是微妙的。以下是一些很好的例子: “SERVER_NAME”当前脚本正在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值 来自当前请求的HOST:header的“HTTP_HOST”内容(如果有
$\u SERVER['HTTP\u HOST']
和$\u SERVER['SERVER\u NAME']
之间的区别是什么?HTTP\u HOST
是客户端发送的主机:
头。因此,它可能会有点不可信<代码>服务器\u名称由服务器的配置决定,与用户输入无关
行为上的差异是微妙的。以下是一些很好的例子:
“SERVER_NAME”当前脚本正在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值
来自当前请求的HOST:header的“HTTP_HOST”内容(如果有)
HTTP\u主机
主机的内容:来自当前请求的头(如果有)
服务器名称
当前脚本正在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值
$\u SERVER['SERVER\u NAME']
提供主机配置中定义的服务器名称值(即对于Apache,Apache.conf文件)
$\u SERVER['HTTP\u HOST']
为您提供域名,当前请求通过该域名得到满足,并且与请求更直接相关
HTTP\u-HOST
通常在大多数应用程序中更有用,因为它直接与请求相关,而SERVER\u-NAME
可以返回conf文件中的任何值,并且根本不告诉您有关请求的任何信息
我将给您举一个例子,说明HTTP\u HOST
与SERVER\u NAME
的区别。假设您在Apache中定义了一个主机,其服务器名为domain.com
,IP地址为1.2.3.4
让我们看看两个传入的请求URL,并显示这些变量之间的差异:
http://www.domain.com
HTTP_HOST = www.domain.com
SERVER_NAME = domain.com
http://1.2.3.4
HTTP_HOST = 1.2.3.4
SERVER_NAME = domain.com
同样,HTTP_主机与请求的联系更紧密,而服务器名称由服务器配置决定。$_服务器['HTTP_主机']”提供当前请求的域名,并且与请求的关系更密切。“+1谢谢!!!!”!!!!感谢人们链接到官方文件,但对我来说太复杂了;)@迈克,这不仅仅取决于服务器的配置。你的结论是错误的<代码>服务器\u名称由服务器的配置和用户输入决定。HTTP\u主机与服务器\u名称之间微妙关系的一个很好的例子如下所示:是的,它与用户输入的相同
SERVER\u NAME
由服务器的配置决定,并且可以根据用户的输入进行设置。@Pacerier我认为准确地说,这是Apache的默认行为。源代码没有说除了Apache之外的任何东西。当然,输出是不一样的。。。。。。。。