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'] : '');


即可。
Simplorer-Maxwell联合仿真速度太慢?我用这3个技巧把仿真时间砍半(附SVPWM周期与步长设置避坑) 本文详细介绍了Simplorer-Maxwell联合仿真性能优化的3个关键技巧,包括仿真步长与周期的科学配置、基于任务调度的加速技术以及模型简化与精度平衡。特别针对SVPWM参数设置提供了避坑指南,帮助工程师在不牺牲精度的情况下将仿真时间缩短50%以上,适用于电机驱动系统开发等场景。 阅读详情

相关推荐

射频收发机(RF Transceiver)

2,既然原来外差的思路是把声音频率的信号,通过混频搬移到高频电磁波频率,那对高频率信号放大的时候,是不是也可以先在比较低的射频频率进行放大,然后再通过频率搬移的方式,将放大后的信号搬移到高频率呢?频率搬移过程中,中间预先设定的固定射频频率被称为“中频”(中间频率,IF,Intermediate Frequency),由于这个频率超出了声音可听的范围,是“超声波”(supersonic),所以被命名为“超外差”(Super-Heterodyne)。混频后的信号在0频率附近,可能会发生DC偏移。

2301_77317229的博客 1096

HTTP头注入

重新认识被人遗忘的HTTP头注入 前言 注入类漏洞经久不衰,多年保持在owasp Top 10的首位。今天就聊聊那些被人遗忘的http头注入。用简单的实际代码进行演示,让每个人更深刻的去认识该漏洞。 HOST注入 在以往http1.0中并没有host字段,但是在http1.1中增加了host字段,并且http协议在本质也是要建立tcp连接,而建立连接的同时必须知道对方的ip和端口,然后才能...

zhangge3663的博客 1486

不用敲命令!用宝塔面板可视化部署pbootCMS的保姆级教程(2024最新版)

本文提供2024年最新版pbootCMS可视化部署教程,全程使用宝塔面板操作,无需任何命令行知识。从服务器初始化、LNMP环境配置到源码上传、安装向导,手把手指导用户通过图形化界面快速搭建专业网站,适合零基础新手和追求高效建站的用户。

weixin_42509507的博客 454

PHP SERVER_NAME和HTTP_HOST的区别

相同点: 当满足以下三个条件时,两者会输出相同信息。 1. 服务器为80端口 2. apache的conf中ServerName设置正确 3. HTTP/1.1协议规范 不同点: 1. 通常情况: _SERVER[“HTTP_HOST”] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。 _SERVER[“SERVER_NAME”] 默认情况下直接输出apac

lxf0613050210的博客 937

$_SERVER['HTTP_HOST']

php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址php手册中的解释如下: “HTTP_HOST” 当前请求的 Host: 头信息的内容。

tingliting的专栏 1422

PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别

PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别     http://blog.snsgou.com/post-749.html http://www.w3school.com.cn/php/func_string_stripos.asp 开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP

jeff_0825的专栏 1万+

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

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

551

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

uchome的index文件中的二级域名功能判断,使用了php$_SERVER['HTTP_HOST'],开始对这个不是很了解,所以百度了一下,发现一篇帖子有点意思,转发过来做个记录。 在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址php手册中的解释如下: “HTTP_HOST”当前请求的 Host...

aum68248的博客 641

PHP$_SERVER['HTTP_REFERER']的反盗链使用

$_SERVER中我们可以获取服务器和执行环境信息

qinchaoguang123456的专栏 1799

php获取当前域名不含http,PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别...

最近在折腾一个半开源的建站程序(什么叫半开源?你懂得!),给客户把模板做好了,网站放到服务器上了,客户那边把数据也都上传了很多,但是突然发现分页出现了问题,域名成了localhost,然后就是各种查找原因,重新安装部署,问题依旧没法解决,将文件和数据库全部搬到本地来确是好好的,开始也没想着是程序有问题(这个建站程序还算比较成熟),所以折腾了好久,最后没办法了看了看分页程序是怎么写的,原来是_SER...

weixin_30404219的博客 877

PHP准确取得服务器IP地址的方法

本文实例讲述了PHP准确取得服务器IP地址的方法。分享给大家供大家参考。具体分析如下:在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址php手册中的解释如下:“HTTP_HOST”当前请求的 Host: 头信息的内容。一般来说,这样子不会遇到什么问题,在一些常见的php框架中,如PFC3和FLEA也是基于该预定义变量。然而最近在做的一个项目,...

u013720169的专栏 8835

php$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别,记不住来看看就知道了

$_SERVER['HTTP_HOST'] = $_SERVER['SERVER_NAME']:$_SERVER['SERVER_PORT'] 当URL为:http://www.tomener.com/love.php $_SERVER['HTTP_HOST']输出是:www.tomener.com $_SERVER['SERVER_NAME']输出是:www.tomener.com

风的专栏 1万+

PHP$_SERVER的详细用法

$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。$_SERVER['argv'] #传递给该脚本的参数。$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。$_SERVER['S...

moliyiran的专栏 2万+

使用$_SERVER['HTTP_HOST']时需注意的

php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip地址$_SERVER['HTTP_HOST']在客户的环境里,取得的值总是程序所在的服务器在其局域网内的ip值。 究其原因,是因为,客户的公司通过一台服务器连接至因特网,而我们的程序所在的服务器,是通过域名映射出来的,也就是中间有个“代理”的过程。因此$_SERVER['HTTP_H...

aochijing0046的博客 867

PHP 中的 $_SERVER 详解

以下内容摘自百度: https://baike.baidu.com/item/$_SERVER/4897514 详细参数 PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。 $_SERVER['argv'] #传递给该脚本的参数。 $_...

我希望,快乐,在我走过的地方绽放。。。。 2474
上一篇: 用Mouse_event和Keybd_event来控制鼠标和键盘
下一篇: VMware 6.5.2上安装Ubuntu9.04的问题探讨
iteye_573
博客等级 码龄8年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值