请求是否已重定向?

时间:2013-02-25 07:39:11

标签: php curl

我通过PHP使用CURL,我需要了解如果请求在此过程中被重定向。

我使用 curl_setopt() CURLOPT_FOLLOWLOCATION 选项设置为true。

现在,如果我请求example.com/page.php,如果页面更改位置而不手动解析响应的标头,我该如何理解?

谢谢

1 个答案:

答案 0 :(得分:1)

不要使用CURLOPT_FOLLOWLOCATION,而是发出HEAD请求并检查响应状态代码是否为重定向(301,302,303,305和307是​​重定向代码)

使用CURLOPT_NOBODY

实现头部请求

可以使用curl_getinfo($ch, CURLINFO_HTTP_CODE);

检查状态代码

<强>更新

如果您需要实际重定向页面的响应,我找到了一个更简单的解决方案:

if (curl_getinfo($ch,  CURLINFO_REDIRECT_COUNT) > 0) {
    // redirected
}

因此,您可以关注重定向并确定之后是否有任何重定向。