как увеличить ограничение длины uri Apache 2

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

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

Какие настройки я могу изменить, чтобы увеличить этот лимит?


person kevin    schedule 06.04.2010    source источник


Ответы (6)


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

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

См. http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestline для получения дополнительной информации.

person Boris    schedule 03.05.2010
comment
NB: это верно только для Apache 2.0 и более ранних версий. Apache 2.2 и более поздние версии (то есть все современные версии Apache) не требуют изменения кода для увеличения LimitRequestLine. - person ; 29.07.2019

Лучший ответ - «не делай этого». См. https://web.archive.org/web/20190902193246/https://boutell.com/newfaq/misc/urllength.html (ссылка ведет к резервному копированию Интернет-архива) для объяснения причины.

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

person Snowhare    schedule 18.04.2010
comment
Ага, лучший ответ. Однако это невозможно сделать, если вы пытаетесь передать данные POST по URL-адресу, который ожидает токен формы. - person HeadCode; 02.11.2017
comment
не относится к OSRM - person Nikhil VJ; 16.10.2020

Открыть /etc/apache2/apache2.conf

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

LimitRequestLine 1000000
LimitRequestFieldSize 1000000
person Dhivin    schedule 22.10.2016

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

LimitRequestLine 100000

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

person Soth    schedule 18.09.2015
comment
где это?? - person ValRob; 06.06.2018
comment
/etc/apache2/apache2.conf - person Nikhil VJ; 16.10.2020

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

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

person Christian d'Heureuse    schedule 29.07.2019

Увеличьте ограничения Apache для строки запроса ограничения и ограничьте размер поля запроса и сохраните его.

Следующий шаг, перезапустите apache, используя sudo service apache2 restart

Надеюсь, это решит проблему.

person Rahul2692    schedule 28.03.2019