1

サーバー側のエラーリダイレクトメソッドを使用せずに(つまり、.htaccessファイルを使用せずに)403エラーを処理したかったのです。サーバーが 403 エラー メッセージ (アクセス禁止) を返すことがあります。では、この 403 エラー メッセージを処理する PHP スクリプトを作成することは可能でしょうか?

たとえば、エラー ページを表示する前に、特定の php ページが実行されたときにサーバーの状態を取得したいと思います。リダイレクトを行わずに、そのページにカスタム メッセージを表示したいと思います。

4

1 に答える 1

1

あなたのためのいくつかの解決策。

  1. URLエラーをチェックし、実際のWebページが指定されていることを確認してください。URLがWebページではなくディレクトリを指している場合に、Webサイトが403Forbiddenエラーを返す一般的な理由。これは、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 に答える