2012-08-17 5 views
1

서버 측 오류 리디렉션 방법 (즉, .htaccess 파일을 사용하지 않고)을 사용하지 않고 403 오류를 처리하려고했습니다. 가끔 서버가 403 오류 메시지를 표시합니다 (금지 된 액세스). 그래서이 403 오류 메시지를 처리 ​​PHP 스크립트를 가질 수 있습니까?리디렉션하지 않고 핸들 403 오류

예를 들어, 오류 페이지를 표시하기 전에 특정 PHP 페이지가 실행될 때 서버 상태를 얻고 싶습니다. 리디렉션하지 않고 해당 페이지에 사용자 지정 메시지를 표시하고 싶습니다.

답변

1

몇 가지 해결책이 있습니다.

  1. 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이다.

  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 
    
+0

고마워요 ... 그것은 나를 도왔다. –

관련 문제