Ubuntu – Apache benutzerdefinierter Fehlerseiten

Veröffentlicht von

Hier eine kleine Anleitung, wie man benutzerdefinierte Fehlerseiten im Apache einrichtet.

Voraussetzung

  • Ubuntu 20.04
  • Apache ist installiert und wird ausgeführt

Erstellen der benutzerdefinierten Fehlerseite

Zuerst müssen wir die benutzerdefinierte Fehlerseite erstellen. Zu Testzwecken werden wir eine Beispiel-Fehlerseite erstellen, um den 404-Fehler abzufangen.
Wir verwenden SSH, um sich mit Ihrem Server zu verbinden, gehen zum Hauptverzeichnis der Website und Erstellen mit folgendem Befehl eine neue Seite namens my-404.html:

sudo nano my-404.htmlCode-Sprache: CSS (css)

und fügen das Folgende in diese Datei ein:

<html>
<head>
<title>My Custom 404 Error Page</title>
</head>

<body>
<p>Whoops, page not found! Sorry about that.</p>

</body>
</html>Code-Sprache: HTML, XML (xml)

Speichern ( STRG + S ) und beenden ( STRG + X)

Wir können die Datei ansehen, indem Wir auf example.com/my-404.html gehen, um sicherzustellen, dass sie korrekt angezeigt wird.

Benutzerdefinierten Fehlerseite einbinden

Um Apache anzuweisen, eine benutzerdefinierte Fehlerseite zu verwenden, müssen wir eine ErrorDocument-Anweisung dem VirtualHost hinzufügen. Die Syntax für diese Direktive lautet:

ErrorDocument 404 [path to file]

# in unserem Fall
ErrorDocument 404 /my-404.html

# möglich wäre auch eune URL oder nur ein Text
ErrorDocument 404 http://example.com/notfound.html
ErrorDocument 404 "Datei nicht gefunden"Code-Sprache: PHP (php)

Wir öffnen also die Config-Datei für unsere Website:

sudo nano /etc/apache2/sites-available/example.com.conf

und fügen die Direktive für das ErrorDocument hinzu

<VirtualHost *:80>
    ServerName example.com
    ErrorDocument 404 /my-404.html
    <Directory "/var/www/example.com/html">
        AllowOverride All
    </Directory>
</VirtualHost>Code-Sprache: HTML, XML (xml)

Speichern ( STRG + S ) und beenden ( STRG + X)
Danach müssen wir noch den Apache-Server neu starten, damit die Änderungen wirksam werden.

sudo services apache2 restart

Jetzt Testen wir mal ob alles geklappt hat und rufen eine URL auf, die es nicht gibt wie z.B. example.com/test

Die Direktive könnte man auch in die .htaccess schreiben.

Andere HTTP-Fehlercodes

Wir können nach dem selben Prinzip, noch weitere Apache-Fehlermeldungen erstellen. Sinnvoll wären noch:

  • 400 – Ungültige Anforderung
  • 401 – Nicht autorisiert
  • 403 – keine Lese-Rechte
  • 410 – angeforderte Ressource nicht mehr verfügbar
  • 413 – Nutzlast zu groß
  • 500 – interner Serverfehler

Fehlerseiten können für alle 400x- und 500x-Fehlercodes konfiguriert werden. Eine vollständige Liste der Fehlercodes finden wir auf Wikipedia.