2

我正在通过 PHP 使用 CURL,我需要了解在此过程中请求是否已被重定向。

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

现在,如果我请求example.com/page.php如何理解页面是否更改了Location:而无需手动解析响应的标头?

谢谢

4

1 回答 1

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
}

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

于 2013-02-25T07:44:40.940 回答