Maintenance-Seite aufschalten

Während man eine Webseite upgraded, sollten die Leute nicht darauf zugreifen können und stattdessen eine „Maintenance-Seite“ zu sehen bekommen.

Dies geht ganz einfach mittels einer .htaccess Daezi, welche im web-root der Webseite erstellt wird:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_HOST} !10.1.1.10
RewriteRule $ /maintenance.html [R=302,L]

Dabei ist: 10.1.1.10 mit deiner eigenen IP zu ersetzten, damit du während dem upgrade immer noch auf die Seite Zugreifen kannst. 🙂

Nun erstellt man noch die Maintenance-Seite:

<HTML>
  <HEAD>
    <TITLE>Maintenance</TITLE>
  </HEAD>
  <BODY>
    <H1>Down for Maintenance</H1>
    This page is currently down for maintenance. Please come back later.
  </BODY>
<HTML>
Zentrale maintenance Seite
Man kann auch eine Zentrale Maintenance Seite erstellen, falls man z.B. viele VirtualHosts hat und dann auf diese Weiter leiten:

#RewriteEngine on
RewriteCond %{REMOTE_HOST} !10.1.1.10
RewriteRule $ <a href="http://maintenance.example.com/maintenance.html" target="blank">http://maintenance.example.com/maintenance.html</a> [R=302,L]

HTTP Header für Maintenance Seite
Um die Suchmaschinen-Indexer, wie z.B. google nicht zu verwirren sollte die HTTP Status Seite den HTTP Status Code 503 (Service Unavailable) senden. – Ansonsten denkt die Suchmaschine, dass es sich bei der Maintenance Seite um die aktuelle Seite handelt!

Um dies zu Berwerkstelligen, kann man anstelle der maintenance.html eine maintenance.php Seite erstellen und oben folgenden Code einfügen:

$protocol = "HTTP/1.0";
if ( "HTTP/1.1" == $_SERVER["SERVER_PROTOCOL"] )
  $protocol = "HTTP/1.1";
header( "$protocol 503 Service Unavailable", true, 503 );
header( "Retry-After: 3600" );

Die Angabe Retry-After gibt dabei die Zeit an in der die Seite wieder Verfügbar ist (hier: 3600 Sekunden = 1 Stunde).

Quellen

Schreibe einen Kommentar

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