2011-02-04 17 views
1

私のウェブサイトはKohanaのv3の上で実行されている、と私はそれが404エラーで正常に動作しますbootstrap.phpのPHP/KohanaでApacheの403エラーを検出するには?

try 
{ 
    // Attempt to execute the response 
    $request->execute(); 
} 
catch (Exception $e) 
{ 
     .... error page re-direct. 
} 

に以下のようにカスタマイズされたエラーページを設定しています。

また、直接アクセスできないフォルダもありますが、それらはwwwルートの下に配置する必要があります。ブラウザでURLにユーザータイプがこのフォルダの下のファイルにアクセスするとき、私はこれらのフォルダ

# nobody can access this folder from Browser 
Deny from all 

を保護するために.htaccessファイルを入れて、Apacheの403エラーは、このようなプレーンテキストで表示されます:

は禁止します

このサーバーの/ private_folderにアクセスする権限がありません。

このエラーをカスタマイズしてKohanaで処理したいとします。しかし、私はApacheが403エラーを完全にコントロールしており、この状況でindex.phpを呼び出すことさえしていないことがわかりました。

それを解決するにはどんな考えですか?

答えて

3

.htaccessを使用してその領域をロックする代わりに、コード内で行うことができます。 PHP's header functionを使用して403ステータスを送信できます。

もう1つのアプローチは、Apacheで403エラーのカスタムエラードキュメントを設定し、これをスクリプトで指し示してエラーを処理する方法です。これを行う方法については、ErrorDocumentのドキュメントを参照してください。ただし、次のような行になります。

ErrorDocument 403 /custom_403_handler.php 
+1

ErrorDocumentはうまく機能します。私は403エラーを私のエラーコントローラにリダイレクトします: 'ErrorDocument 403/error/404' – LazNiko

関連する問題