在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'] : '');
即可。
分享到:
相关推荐
### $_SERVER相关函数 在PHP开发中,`$_SERVER`是一个预定义的全局变量,它包含了服务器和执行环境的信息。这些信息对理解客户端请求、服务器配置以及处理HTTP头部非常重要。以下将详细介绍`$_SERVER`中的一些常用...
$_SERVER['HTTP_HOST']; localhost:80 $_SERVER['SERVER_NAME'] — 返回当前主机名。 localhost $_SERVER['QUERY_STRING']-URL中第一个问号之后的所有内容 action=du&id=9 $_SERVER['REQUEST_URI'];--这里是i而...
STM32_USB-Host-Device_Lib_V2.2.0 是一款专为STM32微控制器设计的USB主机和设备库,适用于STM32 F105、F107、F2以及F4系列芯片。这个库的发布旨在帮助开发者在基于STM32的系统上实现USB功能,无论是作为主机控制...
vmware vsga k2 显卡驱动 esxi6.5 下安装
NVIDIA显卡虚拟化驱动,GRID K2 DIRVER for ESXi6.5,免。
例如,对于URL "http://subdomain.example.com:8080/page",`$_SERVER['HTTP_HOST']`将是"subdomain.example.com:8080"。 为了提取顶级域名,我们需要对这个字符串进行处理。以下是一个简单的函数,用于从`$_SERVER...
5. `$_SERVER["HTTP_HOST"]`:包含HTTP请求头中的Host字段,可能包含端口号。在本例中,它同样是`www.phppx.com`。 6. `$_SERVER["HTTP_REFERER"]`:表示用户是从哪个页面链接过来的,但请注意,这个字段可能被...
STM32_USB-Host-Device_Lib_V2.1.0 (WINUSB HID) 是一个专为STM32微控制器设计的USB主机和设备库,主要用于实现与Windows系统的USB通信,特别是利用WINUSB和HID(Human Interface Device)协议进行交互。这个库是STM...
在 PHP 编程语言中,`$_SERVER` 是一个预定义的全局数组变量,用于存储有关 HTTP 服务器和执行环境的信息。通过 `$_SERVER` 数组,开发人员可以访问到各种有用的服务器变量,这些变量对于理解客户端请求以及服务器...
在PHP开发中,`$_SERVER`是一个预定义的全局数组,包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等服务器环境信息。掌握`$_SERVER`中的各种参数及其含义对于理解和调试Web应用至关重要。 ...
`$_SERVER`数组就是这样的一个预定义变量,它包含了一系列与服务器相关的变量,帮助开发者获取服务器和请求的相关信息。下面我们将详细介绍`$_SERVER`数组中常见的几个用法。 1. `$_SERVER['DOCUMENT_ROOT']` 这个...
复制代码 代码如下:“http://”.$_SERVER [‘HTTP_HOST’].$_SERVER[‘PHP_SELF’].”?”.$_SERVER[‘QUERY_STRING’]; php server函数 大全SERVER[“HTTP_ACCEPT”]=*/* $_SERVER[“HTTP_REFERER”]=...
$currentUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ``` 2. **处理REQUEST_URI**: 在某些情况下,可能需要对`REQUEST_URI`进行额外的处理。例如,在UCHome系统中,可以通过以下代码片段来...
客户端IP地址和主机名可以通过$_SERVER['REMOTE_ADDR']和$_SERVER['REMOTE_HOST']获取,这对于日志记录和安全检查特别重要。 服务器端口可以通过$_SERVER['SERVER_PORT']来获取,这有助于在需要时对服务器的特定...
- `$_SERVER['SERVER_ADMIN']`: 获取服务器管理员的邮箱地址。 - `$_SERVER['SERVER_PORT']`: 获取服务器监听的端口号。 - `$_SERVER['SERVER_SIGNATURE']`: 获取服务器签名。 - `$_SERVER['PATH_TRANSLATED']`:...
Stm32系统CPU的USB开发固件源码,提供HOST和DEVICE的使用实例。
`$_SERVER`是PHP中的一个超全局数组,它包含了服务器环境和HTTP请求的相关信息,是开发者获取服务器状态、用户信息和请求详情的重要工具。本文将详细介绍`$_SERVER`数组中的各个键及其对应的值。 1. `$_SERVER['...
首先,`$_SERVER` 是 PHP 提供的一个超全局数组,它包含了服务器环境的各种信息,如 HTTP 头部、路径、脚本位置等。当浏览器向服务器发送请求时,会附带一些头信息,例如 `User-Agent` 和 `Host`。`$_SERVER` 数组会...