Wartungsmodus mit mod_rewrite

29.05.2008 Webwork Keine Kommentare

Gelegentlich ist es notwendig eine Webanwendung für umfassendere Arbeiten in eine Art Wartungsmodus zu versetzen. Dabei wird dem Besucher dann eine Seite mit einem freundlichen Hinweistext präsentiert, der über Grund und Dauer der Wartungsarbeiten unterrichtet. Bei einigen CM-, Blog-, Webshopsystemen etc. ist ein derartiger Modus bereits integriert und lässt sich einfach über das Admin-Menü aktivieren. Ist dies nicht der Fall, lässt sich eine temporäre Umleitung sehr einfach mit dem Rewrite-Modul für den Apache-Webserver realisieren:
RewriteEngine On
RewriteRule !wartung\.html$ /wartung.html [L]

Leider kann man mit dieser Variante selbst nun auch nicht mehr, etwa für Tests, mit einem Browser auf die Seiten zugreifen. Dies lässt sich ändern, indem die RewriteRule nur anwendet wird, wenn mit einer anderen als der eigenen IP-Adresse (im Beispiel 321.123.321.123) auf die Seite zugegriffen wird.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^321.123.321.123$
RewriteRule !wartung\.html$ /wartung.html [L]

Diese Lösung ist soweit ganz praktikabel. Bei dynamischen IP-Adressen muss die Bedingung allerdings sehr wahrscheinlich nach jeder Einwahl angepasst werden (sofern der Wartungsmodus überhaupt so lange aufrecht erhalten wird).

Eine weitere Variante bei der von einem Rechner aus, sowohl der Wartungsmodus, als auch die normale Ansicht der Seite (Testmodus) genutzt werden können, lässt sich wie folgt realisieren:
RewriteEngine On
RewriteCond  %{HTTP_USER_AGENT}  !.*-gEheIm$
RewriteRule !wartung\.html$ /wartung.html [L]

Hier werden alle Besucher auf die Wartungsseite umgeleitet, deren User-Agent-String nicht mit „-gEheIm“ endet. Beim Firefox lässt sich der User-Agent-String recht einfach ändern, indem man „about:config“ aufruft und dort den Schlüssel „general.useragent.extra.firefox“ ensprechend ergänzt. Alternativ lässt sich das auch mit Addons erledigen. Damit lässt sich nun verhältnismäßig einfach zwischen den beiden „Ansichten“ umschalten. Wesentlicher Nachteil dabei ist allerdings, dass der User-Agent-String an jede aufgerufene Webseite übertragen wird und damit nicht wirklich geheim ist. Man sollte also nicht gerade auf fremden Seiten surfen und eventuell sogar noch als Referrer den URL einer im Wartungsmodus befindliche Seite hinterlassen.

Zum Seitenanfang