0

我正在寻找一种方法来获取页面地址,它在浏览器地址栏中的显示方式完全相同。

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

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

4

3 回答 3

3

您可以通过查看和 来区分www.mysite.com和,但是浏览器总是会自动添加到 URL(并且一些浏览器将其作为不必要的信息对用户隐藏),因此无法知道他们实际输入的内容。mysite.com$_SERVER['HTTP_HOST']http://

于 2013-07-12T21:07:17.517 回答
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://

于 2013-07-12T21:34:35.747 回答
0

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

于 2013-07-12T21:06:21.103 回答