2010-04-06 2 views
13

Tôi nhận được lỗi này trong nhật ký apache2 tôi:làm thế nào để tăng Apache 2 uri dài hạn

[Tue 06 tháng 4 09:00:56 2010] [lỗi] [khách hàng ABCD] Yêu cầu thất bại: URI quá dài (dài hơn 8190)

Tôi có thể thay đổi cài đặt nào để tăng giới hạn này?

Trả lời

12

Bạn sẽ phải đặt DEFAULT_LIMIT_REQUEST_LINE không đổi bên trong mã nguồn Apache và biên dịch lại Apache. Hằng số này nằm trong tệp tiêu đề httpd.h.

Sau khi thực hiện xong, bạn có thể giảm giới hạn yêu cầu bằng chỉ thị LimitRequestLine.

Xem http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestline để biết thêm thông tin.

12

Câu trả lời hay nhất là "không làm điều đó". Xem http://www.boutell.com/newfaq/misc/urllength.html để được giải thích lý do.

Nếu bạn cần chuyển nhiều dữ liệu đó, hãy sử dụng POST, chứ không phải GET.

+1

POST cũng đưa ra cùng 414 lỗi – Sadee

+0

Yep, câu trả lời tốt nhất. Tuy nhiên, bạn không thể thực hiện điều đó nếu bạn đang cố gắng chuyển dữ liệu POST tới URL đang chờ mã thông báo biểu mẫu. – HeadCode

4

Một hack nhanh chóng để làm cho nó làm việc bạn chỉ cần chỉnh sửa các tập tin apache2.conf và thêm dòng:

LimitRequestLine 100000 

Khởi động lại apache và bạn là tất cả tốt. Mặc dù bạn nên thay đổi mã để sử dụng POST thay vì GET và xóa dòng ngay khi bạn có thể.

3

mở /etc/apache2/apache2.conf

và chèn dưới AccessFileName .htaccess:

LimitRequestLine 1000000 
LimitRequestFieldSize 1000000 
+0

'sudo service apache2 restart' – samdd