如何在PHP中检查URL是否重定向到另一个页面?

时间:2013-01-19 18:36:00

标签: php redirect curl boolean

我想看到的是用户输入的网址是否重定向到PHP中的另一个网页。我不想看到它重定向到哪里,而只是重定向到另一个页面。

以下是我目前正在尝试使用的内容:

<?php
  echo "Redirect check";
  $ch = curl_init('http://www.google.com/');
  curl_exec($ch);
  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  if ($code === 301 || $code === 302 || $code === 303 || $code === 307) {
    $redirect = true;
  }else{
    $redirect = false;
  }
?>

然而,当我运行它时,它会在显示“重定向检查”一段时间后将我重定向到yahoo.com。

任何帮助都将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

当您只检查标题时,您不需要BODY。只需发送HEAD个请求即可。你也不需要重定向。因此,请在curl_exec之前添加以下选项。

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_NOBODY, true);

请参阅example