Někdy je užitečné zapojit na serveru naše vlastní error hlášky s nějakým popisem a odkazem třeba na web správce serveru, je to užitečné pro aplikace, které nemají vlastní obsluhu error hlášek.
V apachi je potřeba povolit tyto moduly: alias, negotiation, include
Následně upravíme soubor /etc/apache2/conf.d/localized-error-pages (na debianu, popr. jiny dle distribuce)
Alias /error/ "/var/www/_tpl/error/" <Directory "/var/www/_tpm/error/"> AllowOverride None Options IncludesNoExec FollowSymLinks AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var ErrorDocument 410 /error/HTTP_GONE.html.var ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
Následně je možné vytvořit v adresáři (v našem případě /var/www/_tpl/error/) soubory dle chybových hlášek (viz. *.var). Já jsem jen upravil přednastavené soubory z instalace Apache. Příklad je zde:
... ----------cs-- Content-language: de Content-type: text/html; charset=ISO-8859-1 Body:----------de-- <!--#set var="CONTENT_LANGUAGE" value="de" --><!--#set var="TITLE" value="Fehlerhafte Anfrage!" --><!--#include virtual="include/top.html" --> Ihr Browser (oder Proxy) hat eine ungültige Anfrage gesendet, die vom Server nicht beantwortet werden kann. <!--#include virtual="include/bottom.html" --> ----------de-- Content-language: en Content-type: text/html; charset=ISO-8859-1 Body:----------en-- <!--#set var="TITLE" value="Bad request!" --><!--#include virtual="include/top.html" --> Your browser (or proxy) sent a request that this server could not understand. <!--#include virtual="include/bottom.html" --> ----------en-- ...