web-dev-qa-db-ja.com

Apache 2 uriの長さ制限を増やす方法

私のApache2ログでこのエラーが発生しています:

[2010年4月6日火曜日09:00:56] [エラー] [クライアントA.B.C.D]リクエストが失敗しました:URIが長すぎます(8190より長い)

この制限を増やすにはどの設定を変更できますか?

17
kevin

Apacheソースコード内でDEFAULT_LIMIT_REQUEST_LINE定数を設定し、Apacheを再コンパイルする必要があります。この定数はhttpd.hヘッダーファイルにあります。

これが完了したら、LimitRequestLineディレクティブを使用してリクエスト制限を減らすことができます。

詳細は http://httpd.Apache.org/docs/2.0/mod/core.html#limitrequestline を参照してください。

13
Boris

最良の答えは「それをしないでください」です。理由の説明については、 http://www.boutell.com/newfaq/misc/urllength.html を参照してください。

大量のデータを渡す必要がある場合は、GETではなくPOSTを使用してください。

17
Snowhare

動作させるための簡単なハックは、Apache2.confファイルを編集して次の行を追加するだけです。

LimitRequestLine 100000

Apacheを再起動すれば大丈夫です。 GETの代わりにPOSTを使用するようにコードを変更し、できるだけ早く行を削除する必要があります。

6
Soth

/etc/Apache2/Apache2.confを開く

AccessFileName .htaccessの下に挿入:

LimitRequestLine 1000000
LimitRequestFieldSize 1000000
4
Dhivin

リクエストラインの制限 および リクエストフィールドサイズの制限 のApache制限を増やして保存します。

次のステップでは、Sudo service Apache restartを使用してApacheを再起動します

これで問題が解決することを願っています。

0
Rahul2692

Apacheで仮想ホストを使用する場合、最初の仮想ホスト定義内でLimitRequestLineLimitRequestFieldSizeを一致するポートで設定する必要があります。 Ubuntu/Debianの場合、これは/etc/Apache2/sites-available/000-default.confにあります。

これらのパラメータを/etc/Apache2/Apache2.confで設定すると機能しません。