我想在不使用服务器端错误重定向方法(即不使用 .htaccess 文件)的情况下处理 403 错误。有时服务器会返回 403 错误消息(禁止访问)。那么是否有可能拥有处理此 403 错误消息的 PHP 脚本?
例如,在显示错误页面之前,我想在我的特定 php 页面运行时获取服务器状态,并且不进行重定向,我只想在该页面中显示自定义消息。
我想在不使用服务器端错误重定向方法(即不使用 .htaccess 文件)的情况下处理 403 错误。有时服务器会返回 403 错误消息(禁止访问)。那么是否有可能拥有处理此 403 错误消息的 PHP 脚本?
例如,在显示错误页面之前,我想在我的特定 php 页面运行时获取服务器状态,并且不进行重定向,我只想在该页面中显示自定义消息。
为您提供一些解决方案。
检查 URL 错误并确保指定了实际网页。当 URL 指向目录而不是网页时,网站返回 403 Forbidden 错误的常见原因。这可以使用 PHP 中的 HttpRequest 类来完成。您可以使用http_get来执行 GET 请求。您也可以在此处测试 URL。
<?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