GICT knowledge base
Fix Apache Request-URI Too Long Error
Published
1. Increase the LimitRequestLine directive:
- Open the Apache configuration file (
httpd.conforapache2.conf), typically located in/etc/apache2or/etc/httpd. - Find the
LimitRequestLinedirective. If it’s not present, add it. - Increase the value to allow longer URLs. A value of 10000 is often sufficient:
LimitRequestLine 10000
2. Consider additional directives (if needed):
- LimitRequestFieldSize: If you’re also encountering issues with individual request headers being too long, increase this value as well:
LimitRequestFieldSize 16380
- large_client_header_buffers: If you’re dealing with especially large headers, further increase buffer size:
large_client_header_buffers 4 16k
3. Restart Apache:
- Save the configuration file.
- Restart Apache to apply the changes:
Bash
sudo service apache2 restart
sudo systemctl restart apache2
sudo service httpd restart
4. Reassess application logic (if applicable):
- If you’re still encountering the error after increasing limits, carefully examine your application’s URL structure and logic. Consider:
- Refactoring code to avoid excessively long URLs.
- Using POST requests for transmitting large amounts of data instead of GET requests.
5. Address browser-specific limitations:
- Be aware that some browsers impose their own URL length limits, which might be lower than Apache’s.
Additional considerations:
- Security: Exercise caution when increasing limits, as overly large URLs or headers could potentially be exploited for malicious purposes.
- Troubleshooting: If the error persists, check Apache’s error logs for more specific details.
- Virtual hosts: If you’re using virtual hosts, apply these changes within the appropriate virtual host configuration.
