【问题标题】:PHP get address as in browser address barPHP在浏览器地址栏中获取地址
【发布时间】:2013-07-12 21:04:16
【问题描述】:

我正在寻找一种方法来准确获取页面地址在浏览器地址栏中的显示方式。

我的网站基本上是一个 PHP 脚本,我的目标是确定用户是使用 http://mysite.com 还是 http://www.mysite.com 还是只使用 mysite.com 或 www.mysite.com 来访问该网站。我希望使用此信息来重定向链接,使其采用单一格式。这是我正在使用的一些第三方工具所必需的。

所以我要问的是是否可以获取网站的 url,在 PHP 中,浏览器是如何请求它的。

【问题讨论】:

    标签: php


    【解决方案1】:

    您可以通过查看$_SERVER['HTTP_HOST'] 来分辨www.mysite.commysite.com 之间的区别,但是浏览器总是会自动将http:// 添加到URL(并且某些浏览器将其作为不必要的信息对用户隐藏)所以没有办法知道他们实际输入了什么。

    【讨论】:

    • 谢谢。不过,这可能就足够了。所以我会将您的回复标记为答案。
    【解决方案2】:

    HTTP 请求的前两行如下所示:

    GET /index.php
    Host: www.mysite.com
    

    第一行指定本地资源(通常是您的 Web 目录中的文件),第二行指定用户输入的主机名来查找您的站点(这对于运行多个虚拟 Web 主机的服务器特别有用)。 PHP 允许您提取这两个:

    $_SERVER['HTTP_HOST']
    $_SERVER['PHP_SELF']
    

    从技术上讲,$_SERVER['PHP_SELF'] 指定了当前 PHP 脚本相对于该 Web 主机的根目录的文件路径,但实际上应该与 HTTP 请求第一行中列出的资源相同。

    正如其他回复所提到的,无法判断用户是否输入了http://

    【讨论】:

      【解决方案3】:

      您无法确定用户是否键入了 http:// 或直接从 PHP 中退出。 PHP 将只能知道最终的域名 ($_SERVER['HTTP_HOST'])。其他功能在浏览器中处理。

      【讨论】:

      • 我怎么完全错了?提供一个示例,您可以判断用户是否在地址栏中键入 http:// 以仅使用 PHP 访问您的网站。
      • 对不起,是的。只需重新阅读问题。如果您要编辑您的问题,我将删除反对票。
      • 很公平。措辞不好
      猜你喜欢
      • 2013-07-04
      • 2013-02-14
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 2015-02-09
      • 2013-08-21
      相关资源
      最近更新 更多