2010-12-18 1 views
0

LimitRequestBodyを使用して、アップロード上限を超えた場合にユーザーを切断します。 ITは、このLimitRequestBodyを超えたときにカスタム返信メッセージを作成する方法はありますか?

要求エンティティが大きすぎ /index.php は、GETリクエスト、またはリクエストで提供されたデータの量と要求データを許可していません要求されたリソースのようなメッセージが容量制限を超えて返します。

さらに、ErrorDocumentを使用して要求を処理しようとしているときに404 Not Foundエラーが発生しました。 ロゴ

ここで何を望んでいるのか完全にはわかりませんが、ユーザーが超過した場合は起動します。

答えて

1

LimitRequestBodyはApacheレベルであるため(つまり、決してPHPにヒットしないため)、Apacheレベルでエラー文書を置き換える必要があります。あなたのやり方はErrorDocumentです。

出力Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.から、ErrorDocumentが設定されているように見えますが、Apacheはそれを見つけることができません。

基本的に、あなたのような何かが必要になります。

ErrorDocument 413 /request-too-large.php 

要求があまりにlarge.phpファイルおそらく標準GETリクエストを取得します - 任意のPOSTパラメータが失われますが、あなたが内部$_SERVERを見ることができますし、 $_REQUESTを参照して、元のリクエストから残っているものがないかどうかを確認します。

エラー文書に対してPHPを実行するには、この権利を取得するまでに時間がかかる場合があります。 PHPで直接行うことができない場合は、プレーンなHTMLページを使用し、METAリダイレクトやJavaScriptリダイレクトを設定してPHPページに送ります。

フルURLで設定することもできます。これは、クライアント側のリダイレクトを使用します。

+0

こんにちは、ありがとうございます。 Unfortunatlly私はErrorDocument 413 /error_file.phpを実行しようとしましたが、413は動作していないようです..他のすべての人は500または404が好きですが、413ではありません – john

+0

どのApacheのバージョンを使用していますか?以前は、新しい要求を行う前にコンテンツの長さがリセットされなかったため、413の処理でいくつかのバグがありました。また、クライアント側のリダイレクト(完全なURLを使用)を試しましたか? –

関連する問題