我看到有些得到当前URL的函数是这样的写的
是先判断是否存在$_SERVER["REQUEST_URI"]当不存在时就用$_SERVER["PHP_SELF"];
我就想问下当什么情况下时$_SERVER["REQUEST_URI"]会为空?
function GetCurUrl()
{
if(!empty($_SERVER["REQUEST_URI"]))
{
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
}
else
{
$scriptName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"]))
{
$nowurl = $scriptName;
}
else
{
$nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
}
}
return $nowurl;
}

解决方案 »

  1.   

    如果不是通过点击链接转向,而是通过JS 的LOCATION或者header转向时,REQUEST_URI就是空的。
    不过这也与浏览器有关系,ie和ff是空的,chrome是有值的。
      

  2.   

    我发现你的理论一点也不正确这个是PHP的东西,应该和后台有关系的才对吖?而且我把所有的所有的跳转,所有的浏览器都试了下,最后发现你说的不对
      

  3.   

    当你的web服务器不支持 PATH_INFO (URI美化)时 $_SERVER["REQUEST_URI"] 为空