【问题标题】:Need tp find Request source URL in PHP需要在 PHP 中查找请求源 URL
【发布时间】:2014-11-04 05:56:16
【问题描述】:

我想确定从哪个网站调用了对特定网站的请求。例如..我有一个网站 www.ex.com。现在这个网站链接已经出现在三个网站 www.a.com、www.b.com 和 www.c.com 上。假设一位用户点击了来自 www.a.com 的链接以访问 www.ex.com。现在我想确定请求来自 www.a.com,然后将相应地显示 www.ex.com 中的页面。同样,如果用户从 www.b.com 中点击了 www.ex.com 链接,则页面将相应显示。

那么我怎样才能确定这个请求来源,意味着从哪个网站 www.ex.com 被调用?如果您将使用 PHP 中的代码解释这一点,那就太好了。

谢谢

【问题讨论】:

    标签: php url uri


    【解决方案1】:

    here 中查找 HTTP_HOST 和 HTTP_REFERER。

    由于这两个全局变量都是从 HTTP 标头填充的,因此还要查看 here 的 Host 和 Referer。

    这就是你使用它们的方式:

    $host = $_SERVER['HTTP_HOST'];
    $referer = $_SERVER['HTTP_REFERER'];
    

    第一个是指您的页面的原始主机名(例如“www.a.com”)。第二个是完整的 URL(如https://www.a.com/some/path/to/some.html)。

    然后,根据一些条件逻辑,您可以向用户返回适当的 HTML。

    【讨论】:

      【解决方案2】:

      有两个不同的网站。

      从 a.com 说,你点击 ex.com

      所以,对于a.com中的链接,添加一些参数:

      <a href="ex.com/somepage.php?from=a.com">Click Here</a>
      

      现在,您的 from 参数将是

      1) a.com 2)b.com 3) c.com

      如果以上都不是,那么它是从 ex.com 本身点击的。

      您还可以为此链接添加一些加密以增加安全性。

      【讨论】:

      • 嘿编程学生感谢您的回复。问题是我有很多网站会发出请求,并且无法更改其他网站代码库中的代码。所以我需要一个策略来自动确定链接来自这个网站。
      【解决方案3】:

      你可以用这个

      $_SERVER['HTTP_REFERER'] 
      

      推荐网址

      【讨论】:

      • 嘿高拉夫。感谢您的回复。我已经阅读过这个并发现它并不总是可靠的。那么你能告诉我其他更可靠的方法吗?
      猜你喜欢
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多