文档章节

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

龙振巅峰
 龙振巅峰
发布于 2015/08/27 21:33
字数 300
阅读 66
收藏 4

开发站群软件,用到了根据访问域名判断子站点的相关问题,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"] ,比较保险和可靠。 

 

 

 

 

 

 

 

 

 

本文转载自:http://blog.snsgou.com/post-749.html

龙振巅峰
粉丝 0
博文 31
码字总数 4727
作品 0
苏州
程序员
私信 提问
$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']

PHP获取当前域名有两个变量 $SERVER['HTTPHOST'] 和 $SERVER['SERVERNAME'],两者的区别以及哪个更加可靠? 相同点: 当满足以下三个条件时,两者会输出相同信息。 1. 服务器为80端口 2. apa...

freedonn
2015/01/06
1K
0
php header函数实现301跳转

php 301跳转的代码,主要是用header函数实现转。 PHP 301跳转的小代码 <?php $thehost = $SERVER['HTTP_HOST']; $requesturi = isset($SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] :......

mysoftsky
2013/11/26
122
0
nginx resolver 一直提示domain.com could not be resolved

server{ resolver 8.8.8.8 valid=3600s; listen 80; server_name *.gov.cn; location / { proxy_pass http://$http_host$request_uri; # proxy_redirect default; # proxy_set_header Host $......

Wang_Chang
2015/06/18
2.7K
3
Traffic Server HTTP 反向代理

在反向代理模式中,Traffic Server为Web服务器处理HTTP请求。反向代理模式的Traffic Server服务从客户端浏览器HTTP请求的方式如下图所示。 1. 客户端浏览器在80端口向名为www.host.com 的hos...

红薯
2012/10/25
1K
0
PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解

uchome的index文件中的二级域名功能判断,使用了php的$_SERVER['HTTP_HOST'],开始对这个不是很了解,所以百度了一下,发现一篇帖子有点意思,转发过来做个记录。 在php中,我们一般通过$_S...

赵开锦
2011/01/04
23.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

Spring Security 自定义登录认证(二)

一、前言 本篇文章将讲述Spring Security自定义登录认证校验用户名、密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Security...

郑清
21分钟前
1
0
php yield关键字以及协程的实现

php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象,也就是继承...

冻结not
35分钟前
2
0
servlet请求和响应的过程

本文转载于:专业的前端网站➥servlet请求和响应的过程 1.加载 Servlet类被加载到Java虚拟机中,并且实例化。在这个过程中,web容器(例如tomcat)会调用Servlet类的公开无参构造函数,产生一...

前端老手
35分钟前
2
0
golang 1.13 errors 包来了,不用写“err 气功波”代码

引 这篇是对 errors 包 的姿势挖掘 气功波错误代码 从 http.Get()返回的错误 判断 syscall.ECONNREFUSED 错误.以前要对 go 标准库 error 结构有点熟悉,才能写出下面的代码 func CmdErr(err ...

guonaihong
38分钟前
26
0
喜玛拉雅已听书单

时间倒序排 书名 作者 状态 唐砖 孑与2 进行中 死灵之书(克苏鲁神话合集) 阿卜杜拉·阿尔哈萨德 进行中 赡养人类 刘慈欣 完结 赡养上帝 刘慈欣 完结 中国太阳 刘慈欣 完结 中国太阳 刘慈欣...

Alex_Java
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部