Wer seine eigene Webseite einem Upgrade unterzieht, der möchte oftmals eine hübsche und/oder informative Sorrypage präsentieren. In manchen Fällen reicht der Maintenance-Mode des verwendeten CMS nicht aus, so zum Beispiel wenn das komplette Template während Korrekturarbeiten verändert wird.

Eine sehr einfache Möglichkeit besteht darin, dem Apache alle Aufrufe jeglicher Besucher kurzfristig in eine selbst erstellte Maintenance-Page umzuleiten. Das kann in der Apache mywebpage.conf oder im .htaccess File bewerkstelligt werden:

RewriteEngine On
#MaintenanceWorkMode Redirect für Beispiel IP 123.123.123.154
RewriteCond %{REMOTE_ADDR} !^123.123.123.154
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L] 

Diese Redirect Rule schickt alle Requests die nicht von der IP 123.123.123.154 kommen mit Moved Temporarily 302 nach /maintenance.html (deshalb das Ausrufezeichen vor der IP, den Wert also negativiert) . Eine einzige Ausnahme ist definiert: Direktaufrufe auf Bilder wie jp(e)g, png oder gif werden noch durchgelassen.

Die eigene maintenance.html kann vorgängig ganz nach Wunsch selbst gestaltet werden. Eine hübsche HTML4 Vorlage in schlichtem Design habe ich von hier abkopiert. Das Resultat hat für meine Zwecke völlig ausgereicht:

Das Resultat: Die selbst erstellte Sorrypage für den „Maintenance Mode“.

Diese maintenance.html muss im Root Directory deiner Webseite liegen, direkt neben der eigentlichen index.php. Übrigens kann es sein, dass die Verwendung der oben erwähnten Rule in einem .htaccess File einiges mit Backslash escaped werden muss. In der eigenen Apache Konfigdatei /etc/apache2/sites-enables/mywebpage.conf müssen diese Backslash’s entfernt werden.

Übrigens können problemlos ganze IP-Ranges freigegeben oder dementsprechend umgeleitet werden. Vorlagen dazu findest du auf dieser Seite.

302 oder 503 ?

Viele Meinungen im Internet haben lieber einen Status 503 Service Unavailable auf der Sorrypage anstatt nur 302 Moved Temporarily für geplante Ausfallzeiten, weil der Google Crawler damit besser zugange komme. Ich gehe einfach davon aus, dass der Google Spider sich auch mit einem Code 302 zufrieden gibt, solange die Wartungsarbeit nur ein paar Stunden dauert. Wer unbedingt einen Statuscode 503 zurückgeben möchte, der kann auch eine maintenance.php erstellen um mit PHP einen Response Code 503 an den Browser zu senden.

Kategorien: Dedicated ServerLinux

Schroeffu

Der Autor ist Schweizer, verheiratet, seit November 2015 zu seiner liebevollen Frau nach Braunschweig, Deutschland, ausgewandert. Als Vater von inzwischen zwei Kindern kommt das Bloggen hoffentlich nicht zu kurz.

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.