我想查找特定网站中网页的最终重定向状态代码。在给定到期日期后,该站点将删除这些页面,并使用404状态代码将您重定向到其主页。
假设我要去的其中一个页面是http://example.com/my-page
,此页面不再存在。所以它会将我重定向到http://example.com/
。我检查了chrome开发人员工具,并发送了404状态代码。
现在问题就在于此。我想检查这个页面是否是404。我有以下PHP功能。
function findStatus($url)
{
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
/* Check for 404 (file not found). */
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);
if ($httpCode == 404) {
return true;
} else {
return false;
}
}
当我使用上面的功能检查相关页面时,我得到302以进行永久重定向。我想这个函数在重定向之前获取状态代码。
This answer描述了如何获取URL,但不是状态代码。如何在页面重定向完成后获取状态代码?
答案 0 :(得分:0)
因为您找到答案:Get final redirect with Curl PHP
你非常接近它。 curl_getinfo()
可以获得大量信息。
$url = 'http://localhost:8080/loc.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print_r($info);
# Array
# (
# [url] => http://localhost:8080/dest.php
# [content_type] => text/html; charset=UTF-8
# [http_code] => 404