在PHP中获取实际的浏览器URL

时间:2012-02-19 19:23:41

标签: php

我需要检索用户在浏览器中看到的实际网址。我在页面加载时运行Ajax请求。因此,常规$_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]表达式返回Ajax请求的请求URL,而不是浏览器中的实际URL。

知道如何获得这个吗?

7 个答案:

答案 0 :(得分:5)

您可以使用window.location.href在您的ajax请求中通过javascript传递它。

此外,$_SERVER['HTTP_REFERER']可能包含浏览器的当前位置。

答案 1 :(得分:2)

您也可以尝试使用$_SERVER['HTTP_REFERER'];。这可能有效,但不是100%肯定。

答案 2 :(得分:2)

您无法使用服务器端代码执行此操作,因为没有服务器端变量引用客户端看到的内容。您可以看到的唯一的东西(然后再次,它取决于用户使用的浏览器,有些不传递此信息)是HTTP_REFERRER变量。但是,这仅在页面调用另一个页面时设置,而不是在用户首次访问您的站点时设置。

有关详细信息,请参阅this

然而,一个可能的解决方案可能是使用javascript函数使用AJAX查询将浏览器的顶级URL发送到服务器,并在用户加载页面时在客户端激活它以获取此信息。

编辑:该死的,太慢了,已经回答了!

答案 3 :(得分:1)

传递一个隐藏的输入,该输入具有使用ajax请求设置的浏览器值。除非某人是恶意的,否则就足够了。

答案 4 :(得分:1)

如果您执行Ajax请求,则可以通过Javascripts window.location.href变量将可用的地址作为POST变量传递给请求。

使用jQuery,它将类似于:

$.ajax({
  url: 'your-url.php',
  type: "POST",
  data: { url: window.location.href },
  success: function (data) {
     // Do something on success
  }
});

有了这样的请求,您可以通过简单的方式访问服务器端的URL:

<?php  
   $url = $_POST["url"];
?>

答案 5 :(得分:1)

php中的实际网站链接

   <?php 
          echo $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    ?>

答案 6 :(得分:0)

服务器端语言无法看到呈现并输出页面后会发生什么。