【发布时间】:2012-08-17 15:55:47
【问题描述】:
我想在不使用服务器端错误重定向方法(即不使用 .htaccess 文件)的情况下处理 403 错误。有时服务器会返回 403 错误消息(禁止访问)。那么是否有可能拥有处理此 403 错误消息的 PHP 脚本?
例如,在显示错误页面之前,我想在我的特定 php 页面运行时获取服务器状态,并且不进行重定向,我只想在该页面中显示自定义消息。
【问题讨论】:
标签: php
我想在不使用服务器端错误重定向方法(即不使用 .htaccess 文件)的情况下处理 403 错误。有时服务器会返回 403 错误消息(禁止访问)。那么是否有可能拥有处理此 403 错误消息的 PHP 脚本?
例如,在显示错误页面之前,我想在我的特定 php 页面运行时获取服务器状态,并且不进行重定向,我只想在该页面中显示自定义消息。
【问题讨论】:
标签: php
为您提供一些解决方案。
检查 URL 错误并确保指定了实际网页。当 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
【讨论】: