Fonctionnalité additionnelle. Permet aux administrateurs Web de personnaliser les réponses données par Apache en cas de problèmes. Les réponses personnalisées définies peuvent être activables lorsque le serveur est à même de détecter la cause du problème.
ex. si un script termine en faute, produisant une réponse "500 Server Error", alors cette réponse peut être remplacée soit par un texte quelque peu plus explicatif soit par une redirection vers une autre URL (locale ou externe).
La version 1.3 d'httpd du NCSA répondait souvent avec des messages d'erreur ennuyeux et peu amènes qui étaient sans signification pour l'utilisateur, et ne donnait pas les symptômes qui pouvaient causer la faute.
On pourra désormais demander au serveur :
La redirection vers une autre URL peut être utile, mais seulement si certaines informations peuvent être passées et qui serviront à produire un affichage ou un enregistrement du problème plus clair et explicite.
Pour ce faire, Apache définira de nouvelles variables d'environnement ( à la mode CGI), ex.
      REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap,
      image/jpeg
       REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX
      A.09.05 9000/712)
       REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
       REDIRECT_QUERY_STRING=
       REDIRECT_REMOTE_ADDR=121.345.78.123
       REDIRECT_REMOTE_HOST=ooh.ahhh.com
       REDIRECT_SERVER_NAME=crash.bang.edu
       REDIRECT_SERVER_PORT=80
       REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
       REDIRECT_URL=/cgi-bin/buggy.pl
    
    notez le préfixe REDIRECT_.
Seront au moins passés à la nouvelle URL les
    variables REDIRECT_URL et
    REDIRECT_QUERY_STRING (en supposant que l'URL de
    redirection est un script CGI ou un Include CGI). Les autres
    variables n'existeront que si elles existaient
    déjà avant l'apparition du problème.
    Aucune de ces deux variables ne sera initialisée
    si votre Document d'erreur est le résultat d'une
    redirection externe (c-à-d. toute adresse
    commençant par le nom d'un plan de protocole comme
    http:, même si le protocole invoqué
    aboutit sur le même hôte que le serveur à
    l'origine de la redirection).
        ErrorDocument 500 /cgi-bin/crash-recover
         ErrorDocument 500 "Désolé, votre script
        s'est vautré. Fichtre"
         ErrorDocument 500 http://xxx/
         ErrorDocument 404 /Lame_excuses/not_found.html
         ErrorDocument 401
        /Subscription/how_to_subscribe.html
      
      REDIRECT_. Les
        variables d'environnement de type REDIRECT_
        sont créées à partir des variables
        d'environnement CGI qui existaient avant que n'intervienne
        la redirection, en leur rajoutant le préfixe. Par
        exemple HTTP_USER_AGENT devient
        REDIRECT_HTTP_USER_AGENT. En plus de ces
        variables, Apache définit les variables
        REDIRECT_URL et REDIRECT_STATUS
        pour aider le script à identifier l'origine de la
        redirection. Dans la trace d'accès déduite
        peuvent apparaître l'URL initiale ainsi que l'URL
        vers laquelle est redirigée la requête.Si la directive ErrorDocument spécifie une redirection local vers un script CGI, le script devra inclure un champ "Status:" dans l'en-tête de sa sortie afin de garantir la retransmiison complète vers le client des conditions d'erreurs qui ont causé son invocation. Par exemple un script Perl devrait inclure les lignes suivantes :
      :
    print  "Content-type: text/html\n";
    printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
      :
    Si le script est dédié pour traité une condition d'erreur particulière telle que 404 Not Found, il peut utiliser le code spécifique et le message d'erreur à la place.