我正在通过 PHP 使用 CURL,我需要了解在此过程中请求是否已被重定向。
我已使用curl_setopt()将CURLOPT_FOLLOWLOCATION选项设置为 true 。
现在,如果我请求example.com/page.php
如何理解页面是否更改了Location:而无需手动解析响应的标头?
谢谢
不要使用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
}
因此,您可以跟踪重定向并确定之后是否有任何重定向。