Apache - globální nastavení

Upravené globální error hlášky

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)

error.conf
    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:

/var/www/_tpl/error/HTTP_BAD_REQUEST.html.var
...
----------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&uuml;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--
...