PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别

开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER[‘HTTP_HOST‘] 和 $_SERVER[‘SERVER_NAME‘],两者的区别以及哪个更加可靠?

相同点:

当满足以下三个条件时,两者会输出相同信息。

1、服务器为80端口

2、apache的conf中ServerName设置正确

3、HTTP/1.1协议规范

不同点:

1、通常情况:

$_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。

$_SERVER["SERVER_NAME"] 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值。

2、当服务器为非80端口时:

$_SERVER["HTTP_HOST"] 会输出端口号,例如:snsgou.com:8080

$_SERVER["SERVER_NAME"] 会直接输出ServerName值

因此在这种情况下,可以理解为:$_SERVER[‘HTTP_HOST‘] = $_SERVER[‘SERVER_NAME‘] : $_SERVER[‘SERVER_PORT‘]

3、当配置文件httpd.conf中的ServerName与HTTP/1.0请求的域名不一致时:

httpd.conf配置如下:

<virtualhost *>
	ServerName snsgou.com
	ServerAlias blog.snsgou.com
</virtualhost>

客户端访问域名 blog.snsgou.com

$_SERVER["HTTP_HOST"] 输出 blog.snsgou.com
$_SERVER["SERVER_NAME"] 输出 snsgou.com

所以,在实际程序中,应尽量使用_SERVER["HTTP_HOST"] ,比较保险和可靠。

PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别

时间: 2024-11-06 21:47:09

PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别的相关文章

$_SERVER["HTTP_HOST"]和$_SERVER["SERVER_NAME"]

开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更加可靠? 相同点: 当满足以下三个条件时,两者会输出相同信息. 1.服务器为80端口 2.apache的conf中ServerName设置正确 3.HTTP/1.1协议规范 不同点: 1.通常情况: $_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的H

$_SERVER[‘HTTP_HOST‘]和$_SERVER[‘SERVER_NAME‘]

PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更加可靠? 相同点: 当满足以下三个条件时,两者会输出相同信息. 1. 服务器为80端口 2. apache的conf中ServerName设置正确 3. HTTP/1.1协议规范 不同点: 1. 通常情况: $_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息. $_SERVER[&qu

$_SERVER[&quot;SCRIPT_NAME&quot;]、$_SERVER[&quot;PHP_SELF&quot;]、$_SERVER[&quot;QUERY_STRING&quot;]、$_SERVER[&quot;REQUEST_URI&quot;]

1.$_SERVER["SCRIPT_NAME"] 说明:包含当前脚本的路径 2.$_SERVER["PHP_SELF"] 说明:当前正在执行脚本的文件名 3.$_SERVER["QUERY_STRING"] 说明:查询(query)的字符串 4.$_SERVER["REQUEST_URI"] 说明:访问此页面所需的URI 实例: 1.http://blog.snsgou.com/ (直接打开主页) 结果: $_SERVER[

PHP中获取当前页面的完整URL &amp; php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别

#测试网址:     http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php //获取网址参数 echo $_SERVER["QUERY_STRING"].&quo

使用$_SERVER[&#39;HTTP_HOST&#39;]时需注意的

在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址. $_SERVER['HTTP_HOST']在客户的环境里,取得的值总是程序所在的服务器在其局域网内的ip值. 究其原因,是因为,客户的公司通过一台服务器连接至因特网,而我们的程序所在的服务器,是通过域名映射出来的,也就是中间有个“代理”的过程.因此$_SERVER['HTTP_HOST']在这样的环境里,取得的值总是程序所在的服务器在其局域网内的ip值. 有时项目移交到某些服务器时会出错这时

php 获取当前域名

#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php //获取网址参数 echo $_SERVER["QUERY_STRING"]."&l

详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别

http://blog.sina.com.cn/s/blog_686999de0100jgda.html 实例: 1,http://localhost/aaa/ (打开aaa中的index.php)结果:$_SERVER['QUERY_STRING'] = "";$_SERVER['REQUEST_URI']  = "/aaa/";$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";$_SERVER['PHP_

[PHP学习教程 - 网络]002.$_SERVER[&quot;SCRIPT_NAME&quot;]、$_SERVER[&quot;PHP_SELF&quot;]、$_SERVER[&quot;QUERY_STRING&quot;]、$_SERVER[&quot;REQUEST_URI&quot;]介绍($_SERVER URL Infomation)

引言:在使用原生PHP的时候,对于URL路径的切割,如:域名,查询参数等等的提取,通常绝大多数兄弟会忽略$_SERVER中定义的内置常量的关系,这里为大家讲解一下. 常用的URL请求路径$_SERVER常量包含以下四个API! $_SERVER["SCRIPT_NAME"]  获取当前脚本的路径,如:index.php $_SERVER["PHP_SELF"]  当前正在执行脚本的文件名 $_SERVER["QUERY_STRING"]  获取查

【转载】详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别

实例: 1,http://localhost/aaa/ (打开aaa中的index.php)结果:$_SERVER['QUERY_STRING'] = "";$_SERVER['REQUEST_URI']  = "/aaa/";$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";$_SERVER['PHP_SELF']     = "/aaa/index.php"; 2,http://loc