PHP获取用户代理请求URL
背景 我有一个为我们的营销团队设置的小网站,它与我们的核心网站配置在同一台服务器上。该站点已在PHP获取用户代理请求URL,php,apache,url,Php,Apache,Url,背景 我有一个为我们的营销团队设置的小网站,它与我们的核心网站配置在同一台服务器上。该站点已在Apache中设置为marketing.lan。我们已经配置了一些东西,以便通过/marketingurl向我们的核心站点发出的任何请求都可以加载marketing.lan页面。例如: 将指向marketing.lan站点上的test.php脚本。未执行重定向,浏览器URL仍将为空 www.coresite.com/marketing/test.php Apache通过将通过“www.coresite
Apache
中设置为marketing.lan
。我们已经配置了一些东西,以便通过/marketing
url向我们的核心站点发出的任何请求都可以加载marketing.lan
页面。例如:
将指向marketing.lan
站点上的test.php
脚本。未执行重定向,浏览器URL仍将为空
www.coresite.com/marketing/test.php
Apache通过将通过“www.coresite.com/marketing/”URL发出的所有请求的主机设置为marketing.lan来实现这一点
问题
问题是,当我尝试获取URL时,页面是通过$\u服务器['HTTP\u HOST']
访问的,即使浏览器显示正确的URL,我也得到marketing.lan/test.php
而不是www.coresite.com/marketing/test.php
问题
是否可以获取脚本访问的实际“URL”?或者这是Apache隐藏的?我该怎么做。我的理解是:
www.coresite.com
有一个DocumentRoot
类似于/var/www/coresite.com/
marketing.lan
有一个DocumentRoot
类似于/var/www/marketing.lan/
marketing.lan
作为www.coresite.com
的子站点,以便显示的内容如何做到这一点 不需要修改它们各自的apache配置;只需创建一个
符号链接
ln -s /var/www/marketing.lan /var/www/coresite.com/marketing
这将回答您的问题:
如果您的test.php
有一行echo$\u服务器['HTTP\u主机].$\u服务器['REQUEST\u URI']代码>
- 转到url
http://www.coresite.com/marketing/test.php
将显示
www.coresite.com/marketing/test.php
- 转到url
http://marketing.lan/test.php
将显示
marketing.lan/test.php
服务器['HTTP\u HOST']
的值来自主机的配置,而不是请求任何通过/marketing url发送到我们核心站点的请求都将加载marketing.lan页面。
如何完成?您可以在该请求中添加一些附加信息。尝试使用$\u服务器['request\u URI']我与系统管理员聊天,他们已将Apache配置为将主机更改为marketing.lan。对于从coresite.com/marketing.Jay传入的所有请求,request\u URI将只返回URL的请求位,而不是域。@Cheery-否,HTTP\u-HOST
反映了客户端()发送的HOST:
请求头的内容。您可能正在考虑SERVER\u NAME
。