PHP环境变量之$_SERVER["SERVER_NAME"] 和$_SERVER["HTTP_HOST"]的区别

blogdaren 2015-04-25 抢沙发 1995人次

区别如下:

1. 通常情况:
$_SERVER["HTTP_HOST"] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。
$_SERVER["SERVER_NAME"] 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值。

2. 当服务器为非80端口时:
_SERVER["HTTP_HOST"] 会输出端口号,例如:mimiz.cn:8080
_SERVER["SERVER_NAME"] 会直接输出ServerName值
因此在这种情况下,可以理解为:HTTP_HOST = SERVER_NAME : SERVER_PORT

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

<virtualhost *>
ServerName blogdaren.com
ServerAlias www.blogdaren.com
</virtualhost>
客户端访问域名 www.blogdaren.com
$_SERVER["HTTP_HOST"] 输出 www.blogdaren.com
$_SERVER["SERVER_NAME"] 输出 blogdaren.com

总结:

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

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:PHP环境变量之$_SERVER["SERVER_NAME"] 和$_SERVER["HTTP_HOST"]的区别

发表评论:

您的昵称:
电子邮件:
个人主页:

Free Web Hosting