L’erreur “Request-URI Too Long” dans Apache se produit lorsqu’un client envoie une URL qui dépasse la limite de longueur prédéfinie par le serveur. Ce problème peut empêcher les utilisateurs d’accéder à des pages spécifiques et est généralement rencontré dans les applications qui transmettent de grandes quantités de données dans l’URL.

Si vous êtes à la recherche d’une solution d’hébergement performante avec des configurations de serveur optimisées, Ava Hosting propose des serveurs VPS et dédiés avec un support complet d’Apache afin de prévenir et de résoudre efficacement ce type d’erreurs.

Causes de l’erreur Request-URI Too Long

  1. Paramètres de requête excessifs: Un trop grand nombre de paramètres dans l’URL peut dépasser la limite autorisée.
  2. URL longues dans les applications web: Certaines applications construisent des URL longues de manière dynamique, ce qui entraîne ce problème.
  3. Mauvaise configuration des paramètres du serveur: La configuration par défaut d’Apache peut restreindre les URL longues.
  4. Limitations du serveur proxy ou de l’équilibreur de charge: Les serveurs intermédiaires peuvent imposer leurs propres limites à la longueur des URI.
  5. Restrictions de sécurité: Certains modules de sécurité, comme mod_security, peuvent bloquer les URI longs.

Comment corriger l’erreur Request-URI Too Long ?

1. Augmenter la limite de longueur des URI d’Apache

Modifiez la directive LimitRequestLine dans votre fichier de configuration Apache pour augmenter la longueur de requête autorisée.

  1. Ouvrez le fichier de configuration d’Apache (httpd.conf ou apache2.conf) :
    sudo nano /etc/apache2/apache2.conf  # Debian/Ubuntu
    sudo nano /etc/httpd/conf/httpd.conf  # CentOS/RHEL
  2. Ajoutez ou modifiez la ligne suivante :
    LimitRequestLine 8190

    La valeur par défaut est de 8190 octets (8 KB). Vous pouvez l’augmenter à 16384 (16 KB) ou plus si nécessaire.

  3. Redémarrez Apache pour appliquer les modifications :
    sudo systemctl restart apache2  # Debian/Ubuntu
    sudo systemctl restart httpd  # CentOS/RHEL

2. Augmenter la limite des champs d’en-tête

La directive LimitRequestFieldSize contrôle la taille maximale d’un champ d’en-tête de requête HTTP. Si vous avez de longues URL avec des en-têtes, il peut être utile d’augmenter cette valeur.

  1. Ouvrez le fichier de configuration d’Apache :
    sudo nano /etc/apache2/apache2.conf  # Debian/Ubuntu
    sudo nano /etc/httpd/conf/httpd.conf  # CentOS/RHEL
  2. Ajoutez ou modifiez la ligne suivante :
    LimitRequestFieldSize 16384
  3. Redémarrez Apache :
    sudo systemctl restart apache2  # Debian/Ubuntu
    sudo systemctl restart httpd  # CentOS/RHEL

3. Vérifier et modifier le code de l’application Web

  • Si votre application transmet trop de données via des requêtes GET, envisagez de passer à des requêtes POST, qui ne sont pas soumises à des limites de longueur strictes.
  • Optimisez la structure des URL afin de réduire au minimum les paramètres inutiles.
  • Utilisez des cookies ou des sessions pour stocker de grandes quantités de données au lieu de les transmettre dans l’URL.

4. Configurer des serveurs proxy ou des équilibreurs de charge

Si votre serveur se trouve derrière un proxy ou un équilibreur de charge, mettez à jour ses paramètres pour autoriser des URI plus longs.

Pour Nginx :

proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
large_client_header_buffers 4 16k;

Pour HAProxy :

option http-buffer-request
max-header-size 32768

Après avoir effectué les modifications, redémarrez le service concerné :

sudo systemctl restart nginx  # For Nginx
sudo systemctl restart haproxy  # For HAProxy

5. Désactiver ou modifier les règles de mod_security

Si mod_security est activé, il est possible qu’il bloque les longs URI. Pour vérifier s’il est à l’origine du problème, désactivez-le temporairement :

sudo a2dismod security2  # Debian/Ubuntu
sudo systemctl restart apache2  # Restart Apache

Si la désactivation de mod_security résout le problème, envisagez de personnaliser ses règles au lieu de le désactiver définitivement.

Conclusion

L’erreur “Request-URI Too Long” dans Apache est généralement causée par une longueur d’URL excessive, souvent due à des applications mal configurées, à des chaînes de requête trop longues ou à des limitations dans les paramètres du proxy. Heureusement, ce problème peut être résolu grâce à plusieurs stratégies efficaces :

  • Augmentation des limites Apache et côté serveur (par exemple, LimitRequestLine, LimitRequestFieldSize)

  • Optimiser les structures d’URL et les charges utiles des requêtes GET dans vos applications

  • Ajuster les configurations de proxy inverse NGINX ou Apache

  • Examiner les règles WAF (Web Application Firewall) ou ModSecurity susceptibles de déclencher le rejet

Chez AvaHost, notre environnement d’hébergement est conçu pour être flexible et convivial pour les développeurs. Que vous soyez sur un plan d’hébergement partagé ou que vous gériez votre propre VPS / serveur dédié, vous avez un contrôle total sur les configurations du serveur pour résoudre ces problèmes.