Apache HTTP-palvelin

APACHE HTTPD KOULUTUSTA VUONNA 2025!

Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.

Miten luot mukautettuja virheilmoituksia Apache-palvelimella

Apache tukee mukautettuja virhesivuja ja virheilmoituksia ErrorDocument-direktiivin avulla. Tämän avulla palvelin voi näyttää kustomoituja virhesivuja selaimen virheilmoitusten sijaan. Esimerkiksi 404-virhe voidaan ohjata mukautetulle HTML-sivulle.

Mukautettu virhesivu voi sisältää esimerkiksi lisätietoa virheestä, ohjeita käyttäjälle tai uudelleenohjauksen toiselle sivulle. ErrorDocument-direktiiville annetaan arvoksi joko merkkijono (esim. teksti) tai URI, joka osoittaa halutun virhesivun:

ErrorDocument 500 "tosi paha koodimoka..."
ErrorDocument 404 /eiooeikatuu.html
ErrorDocument 404 "/cgi-bin/kateissa.pl"
ErrorDocument 302 http://www.2kmediat.com/konehuone/default.asp

Yleisin käytäntö on luoda virheilmoituksille oma aliaskansio ja noutaa mukautetut virheilmoitukset sieltä. Alla olevassa esimerkissä hyödynnetään Apachen tukea monikielisyydelle ja virheilmoitukset näytetään käyttäjän selaimen suosimalla kielellä:

<IfModule mod_negotiation.c>
  
  IfModule mod_include.c>
    Alias /error/ "C:/ApacheWeb/errors/"

    <Directory "C:/ApacheWeb/errors">
      AllowOverride None
      Options IncludesNoExec
      AddOutputFilter Includes html
      AddHandler type-map var
      Order allow,deny
      Allow from all
      LanguagePriority fi 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

  </IfModule>
</IfModule>