1

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

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

4

1 回答 1

1

为您提供一些解决方案。

  1. 检查 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 ,您可以使用它进一步发挥作用。

  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
    
于 2012-08-17T15:58:09.467 回答