关于PHP获取服务器地址问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于PHP获取服务器地址问题

2016-06-07 14:13:25 1686 1

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值。怎么解决这个问题呢?

PHP
取消 提交回答
全部回答(1)
  • 吴孟桥
    2019-07-17 19:29:59

    在symfony框架里面,找到替代的实现方法:

    将$host = $_SERVER['HTTP_HOST'];

    替换成:

    $host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');

    即可。

    0 0
相关问答

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 234322浏览量 回答数 170

32

回答

(原创)阿里云快速硬盘挂载教程!!!!!

梦丫头 2014-01-22 17:36:21 86588浏览量 回答数 32

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 160183浏览量 回答数 145

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 149115浏览量 回答数 22

3

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 133760浏览量 回答数 3

257

回答

“零基础”系列课程--如何在ECS上快递搭建一个WordPress站点

patricia 2015-09-30 17:40:16 87506浏览量 回答数 257

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 310639浏览量 回答数 251

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 125166浏览量 回答数 97

14

回答

域名解析是正确的,但是网站打不开求助!

游客b4ezpaqg54gdq 2019-07-05 11:50:33 123193浏览量 回答数 14

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 109016浏览量 回答数 78
+关注
0
文章
2240
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载