处理403错误而不进行重定向

时间:2012-08-17 15:55:47

标签: php

我想在不使用服务器端错误重定向方法的情况下处理403错误(即不使用.htaccess文件)。有时服务器返回403错误消息(禁止访问)。那么有可能有PHP脚本来处理这403错误消息吗?

例如,在显示错误页面之前,我想在我的特定php页面运行时获取服务器状态,而不进行重定向,我只想在该页面中显示自定义消息。

1 个答案:

答案 0 :(得分:1)

为您提供一些解决方案。

  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,您可以使用它来进一步发挥。

  2. 使用卷曲。

    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