Как увеличить лимит длины 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
Ответ 5
Увеличьте лимиты Apache для предельной строки запроса и ограничьте размер поля запроса и сохраните его.
Следующий шаг: перезапустите apache с помощью sudo service apache restart
Надеюсь, это решит проблему.
Ответ 6
Если вы используете виртуальные хосты с Apache, вы должны установить LimitRequestLine
и LimitRequestFieldSize
в первом определении виртуального хоста с соответствующим портом.
Для Ubuntu/Debian это находится в /etc/apache2/sites-available/000-default.conf
.
Это не работает, если вы установите эти параметры в /etc/apache2/apache2.conf
.