PHP获取用户代理请求URL

时间:2014-10-28 00:50:47

标签: php apache url

背景

我有一个为我们的营销团队设置的小网站,它与我们的核心网站配置在同一台服务器上。该网站已在marketing.lan中设置为Apache。我们已配置了一些内容,以便通过/marketing网址向我们的核心网站发出的任何请求都会加载marketing.lan页面。例如:

  

https://www.coresite.com/marketing/test.php

将指向test.php网站上的marketing.lan脚本。没有重定向,浏览器URL仍然是

  

www.coresite.com/marketing/test.php。

Apache通过将主机设置为marketing.lan来执行此操作,以通过“www.coresite.com/marketing/”URL进行所有请求。

问题

问题在于,当我尝试通过使用$_SERVER['HTTP_HOST']获取网页时,即使浏览器显示正确的网址,我也会marketing.lan/test.php而不是www.coresite.com/marketing/test.php。< / p>

问题 是否有可能获得脚本被访问的实际'URL?或者这是Apache隐藏的吗?我该怎么做。

1 个答案:

答案 0 :(得分:1)

我的理解:

  1. 这两个网站都位于相同的服务器(可能是Linux机器)

  2. www.coresite.com有一个DocumentRoot /var/www/coresite.com/

  3. marketing.lan有一个DocumentRoot /var/www/marketing.lan/

  4. 您现在希望marketing.lan作为www.coresite.com的子网站,以便 http://www.coresite.com/marketing/ 显示 {{3}的内容}


  5. 如何做到这一点

    无需修改其各自的apache配置;只需创建一个symlink

    ln -s /var/www/marketing.lan /var/www/coresite.com/marketing
    

    这将回答您的问题

    如果您的test.php有一行echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

    • 转到网址http://www.coresite.com/marketing/test.php会显示

      <强> www.coresite.com/marketing/test.php

    • 转到网址http://marketing.lan/test.php会显示

      <强> marketing.lan/test.php