Как увеличить лимит длины Apache 2 uri

Я получаю эту ошибку в моем журнале apache2:

[Вт апр 06 09:00:56 2010] [ошибка] [клиент A.B.C.D] запрос не выполнен: URI слишком длинный (длиннее 8190)

Какую настройку можно изменить для увеличения этого предела?

Ответы

Ответ 1

Вам нужно будет установить константу DEFAULT_LIMIT_REQUEST_LINE внутри исходного кода Apache и перекомпилировать Apache. Эта константа находится в заголовочном файле httpd.h.

После этого вы можете уменьшить ограничение запроса с помощью директивы LimitRequestLine.

Подробнее см. http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestline.

Ответ 2

Лучший ответ - "не делай этого". См. http://www.boutell.com/newfaq/misc/urllength.html для объяснения причин.

Если вам нужно передать столько данных, используйте POST, а не GET.

Ответ 3

Быстрый взлом, чтобы заставить его работать, вы просто редактируете файл apache2.conf и добавляете строку:

LimitRequestLine 100000

Перезапустите apache, и все хорошо. Хотя вы должны изменить код, чтобы использовать POST вместо GET и удалить строку, как только сможете.

Ответ 4

Откройте /etc/apache2/apache2.conf

и вставьте под AccessFileName .htaccess:

LimitRequestLine 1000000
LimitRequestFieldSize 1000000

Ответ 6

Если вы используете виртуальные хосты с Apache, вы должны установить LimitRequestLine и LimitRequestFieldSize в первом определении виртуального хоста с соответствующим портом. Для Ubuntu/Debian это находится в /etc/apache2/sites-available/000-default.conf.

Это не работает, если вы установите эти параметры в /etc/apache2/apache2.conf.