我正在寻找一种方法来获取页面地址,确切地说它是如何在浏览器的地址栏中显示的。
我的网站基本上是一个PHP脚本,我的目标是确定用户是使用http://mysite.com还是http://www.mysite.com还是只使用mysite.com或www.mysite.com来访问该网站。我希望使用此信息重定向链接,以便它采用单一格式。这是我正在使用的一些第三方工具所必需的。
所以我要问的是,是否可以获取网站的网址,在PHP中确切地说是浏览器的请求方式。
答案 0 :(得分:3)
您可以通过www.mysite.com
查看mysite.com
和$_SERVER['HTTP_HOST']
之间的区别,但浏览器会自动将http://
添加到网址中(有些浏览器会隐藏它)从用户那里获取不必要的信息)因此无法知道他们实际输入的内容。
答案 1 :(得分: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://
。
答案 2 :(得分:0)
您无法确定用户是否键入了http://或直接从PHP中删除了它。 PHP只能告诉最终的域名($_SERVER['HTTP_HOST']
)。其他功能在浏览器中处理。