PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
来源:互联网 发布:淘宝棒球服外套女 编辑:程序博客网 时间:2024/06/13 23:51
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'] : '');
即可。
0 0
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解,$_SERVER['HTTP_X_FORWARDED_HOST']
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解,$_SERVER['HTTP_X_FORWARDED_HOST']
- PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
- PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
- PHP $_SERVER['HTTP_HOST']与$_SERVER["SERVER_NAME"]的区别
- $_SERVER详解($_SERVER[PHP_SELF],$_SERVER[SCRIPT_NAME],$_SERVER['REQUEST_URI']与HTTP_HOST和SERVER_NAM的区别)
- [PHP]$_SERVER 预保留变量:HTTP_HOST 与 SERVER_NAME 的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
- PHP中$_SERVER中HTTP_HOST和SERVER_NAME的区别
- github的使用windows 无密码push
- JAVA笔记【20131218】
- cisco OER /PfR
- 【android,4】4.SQLite数据库,内容提供者、内容观察者
- 【转】jsp中pageEncoding、charset=UTF -8"、(request/response).setCharacterEncoding("UTF-8")
- PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
- 软件工程-软件重用
- 分支定界算法(Branch and Bound)
- C++ 重载 覆盖 隐藏
- linux exec函数家族
- 【android】5.listview组件的使用(重要!)
- Python中Socket的Close方法假关闭Socket连接的问题
- 【android,6】6.android在web下的应用-在客户端获取服务端的信息
- 【android,7】7.android在web下的应用-将客户端信息提交到服务端