我正在检查不同 URL 上是否存在 xml 站点地图。如果我提供一个 URL example.com/sitemap.xml,并且它对 www.example.com/sitemap.xml 有一个 301,我显然会得到一个 301。如果 www.example.com/sitemap.xml 不存在,我不会看到 404。因此,如果我得到 301,我会执行另一个 cURL 来查看 www.example.com/sitemap.xml 是否返回 404。但是,出于某种原因,我得到了随机的 404 和 303 状态码。
private function check_http_status($domain,$file){
$url = $domain . "/" . $file;
$curl = new Curl();
$curl->url = $url;
$curl->nobody = true;
$curl->userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20060601 Firefox/2.0.0.1 (Ubuntu-edgy)';
$curl->execute();
$retcode = $curl->httpCode();
if ($retcode == 301 || $retcode == 302){
$url = "www." . $domain . "/" . $file;
$curl = new Curl();
$curl->url = $url;
$curl->nobody = true;
$curl->userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20060601 Firefox/2.0.0.1 (Ubuntu-edgy)';
$curl->execute();
$retcode = $curl->httpCode();
}
return $retcode;
}