您当前的位置: 首页 > 网站编程 > PHP教程 > PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解

PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解

作者:xiaoxiao 来源:未知 发布时间: 2013-10-22 16:00 点击:
uchome的index文件中的二级域名功能判断,使用了php的$_SERVER['HTTP_HOST'],开始对这个不是很了解,所以百度了一下,发现一篇帖子有点意思,转发过来做个记录。 在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址。 php手册中的解释如下:

PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解

      uchome的index文件中的二级域名功能判断,使用了php的$_SERVER['HTTP_HOST'],开始对这个不是很了解,所以百度了一下,发现一篇帖子有点意思,转发过来做个记录。
  
  在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址。
  
  php手册中的解释如下:
  
  “HTTP_HOST”
  
  当前请求的 Host: 头信息的内容。
  
  一般来说,这样子不会遇到什么问题,在一些常见的php框架中,如PFC3和FLEA也是基于该预定义变量。
  
  然而最近在做的一个项目,程序移交到客户手里测试时,竟然发现程序的跳转总是会出错。
  
  最后找出原因:$_SERVER['HTTP_HOST']在客户的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。
  
  究其原因,是因为,客户的公司通过一台服务器连接至因特网,而我们的程序所在的服务器,是通过域名映射出来的,也就是中间有个“代理”的过程。因此$_SERVER['HTTP_HOST']在这样的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。
  
  最后查了不少资料,在symfony框架里面,找到替代的实现方法:
  
  将$host = $_SERVER['HTTP_HOST'];
  
  替换成:
  
  $host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');
  
  即可。

分享到:
本文"PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(1)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4