我想在不使用服务器端错误重定向方法的情况下处理403错误(即不使用.htaccess文件)。有时服务器返回403错误消息(禁止访问)。那么有可能有PHP脚本来处理这403错误消息吗?
例如,在显示错误页面之前,我想在我的特定php页面运行时获取服务器状态,而不进行重定向,我只想在该页面中显示自定义消息。
答案 0 :(得分:1)
为您提供一些解决方案。
检查网址错误并确保指定了实际的网页。当URL指向目录而不是网页时,网站返回403 Forbidden错误的常见原因。这可以使用PHP中的HttpRequest类来完成。您可以使用http_get执行GET请求。您还可以Test URL here。
<?php
$response = http_get("URL", array("timeout"=>1), $info);
print_r($info);
?>
输出:
array (
'effective_url' => 'URL',
'response_code' => 403,
.
and so on
)
对您来说重要的是response_code,您可以使用它来进一步发挥。
使用卷曲。
function http_response($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$head = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if(!$head)
{
return FALSE;
}
return $httpCode;
}
$errorcode = http_response("URL"); //if success 200 otherwise different