如何确定URL是否在PHP中重定向?

时间:2009-01-09 06:02:28

标签: php url rewrite

我看到有人问一个关于检测URL是否从groovy和perl重定向但是在PHP上找不到任何内容的问题。

任何人都知道某个地方我可以找到这样做的代码吗?

3 个答案:

答案 0 :(得分:16)

$ch = curl_init('http://www.yahoo.com/');
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (($code == 301) || ($code == 302)) {
  //This was a redirect
}

答案 1 :(得分:6)

实际上,我觉得这个效果最好:

    function GetURL($URL)
    {
            $ch = curl_init($URL);

            curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);


            curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

            curl_exec($ch);

            $code = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

            curl_close($ch);

            return $code;
    }

答案 2 :(得分:3)

请记住,通常为此问题提供的答案都不会考虑由返回文档中编码的javascript引起的重定向(或者我认为HTML中的元刷新标记。)所以有可能无论什么在使用这种代码进行测试时,您会错过某些类型的“重定向”。

不幸的是,解决这个问题的唯一方法是让实际的网络浏览器点击网页,并以报告javascript和元刷新重定向的方式修改网络浏览器。

干杯!