【发布时间】:2015-01-04 00:30:33
【问题描述】:
我正在尝试修复网站上的链接。我必须检查页面上所有链接的 404。我正在使用 php curl 检查响应 http 代码。但奇怪的是它总是返回 200 OK。
这是我的is_404() 代码,
$curl = curl_init($url);
//don't fetch the actual page, you only want to check the connection is ok
curl_setopt($curl, CURLOPT_NOBODY, true);
//do request
$result = curl_exec($curl);
$ret = true;
//if request did not fail
if ($result !== false) {
//if request was ok, check response code
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = false;
}
}
curl_close($curl);
return $ret;
即使在显示 404 页面的页面上,我也总是返回 200 OK。服务器正在使用正确的页面处理所有 404。
任何帮助将不胜感激!
【问题讨论】:
-
您确定 404 页面也返回状态码 404?
-
这或许可以解释问题:stackoverflow.com/questions/23248822/…
-
所有 404 都有页面显示您输入了错误的 url。全部返回 200 OK 响应。我认为我可能需要为该页面设置 404 http 代码标头。
标签: php curl nginx http-status-code-404