Status 503 mit htaccess Senden
Stefan Kleeschulte
- webserver
Hi zusammen!
Ich habe auf meinem Webspace-Account mehrere Domains mit jeweils eigenen Hostings, etwa so:
abc.de -> /abc.de/www
www.abc.de -> /abc.de/www
xyz.abc.de -> /abc.de/xyz
def.de -> /def.de/www
www.def.de -> /def.de/www
xyz.def.de -> /def.de/xyz
uvw.def.de -> /def.de/uvw
usw.
Nun muss ich mit allen diesen Domains auf einen anderen Server umziehen, was mich etwa 2 bis 3 Tage kostet. In dieser Zeit sollen die Seiten auf dem alten Server nicht mehr erreichbar sein. Stattdessen soll bei jedem beliebigen Aufruf eine immer gleiche Fehlermeldung angezeigt und der HTTP-Status 503 gemeldet werden.
Hat jemand eine Idee, wie ich das mit einer einzigen .htaccess-Datei in / anstellen kann? (Ich kann mod_rewrite verwenden.)
Viele Grüße,
Stefan
你好 Stefan,
[… 503 bei jeder URL …]
Hat jemand eine Idee, wie ich das mit einer einzigen .htaccess-Datei
in / anstellen kann? (Ich kann mod_rewrite verwenden.)
Nur mit einer .htaccess-Datei wirst du das nicht hinkriegen. Du wirst auch
ein CGI-Script bauen müssen, dass immer 503 zurücksendet und dann jeden
Request darauf umleiten.
再见,
克里斯蒂安
Hi Christian,
Nur mit einer .htaccess-Datei wirst du das nicht hinkriegen. Du wirst auch
ein CGI-Script bauen müssen, dass immer 503 zurücksendet und dann jeden
Request darauf umleiten.
Stimmt - ich dachte erst, dass es mit dem Flag [R=503] gehen könnte (bei
RewriteRule), was allerdings nicht geht.
Jetzt bin ich gerade aber noch auf die Header Direktive gestoßen:
Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]
Ginge vielleicht sowas in der Art:
Header set Status "503"
Oder führt das auch nicht zum gewünschten Ziel?
MfG, Dennis.
你好 Dennis,
Ginge vielleicht sowas in der Art:
Header set Status "503"
Oder führt das auch nicht zum gewünschten Ziel?
Das führt zu einem Header „Status: 503“ und nicht zur Status-Zeile „503
Service temporarily not available“.
再见,
克里斯蒂安
Hi Christian!
Nur mit einer .htaccess-Datei wirst du das nicht hinkriegen. Du wirst auch
ein CGI-Script bauen müssen, dass immer 503 zurücksendet und dann jeden
Request darauf umleiten.
Ok, das Script ist kein großes Problem, wobei ich PHP bevorzuge. Aber wie leite ich alle Requests auf dieses Script um? Und wo lege ich das Script ab, damit es für alle Domains funktioniert?
Viele Grüße,
Stefan
Hi Stefan,
Ok, das Script ist kein großes Problem, wobei ich PHP bevorzuge. Aber wie leite ich alle Requests auf dieses Script um? Und wo lege ich das Script ab, damit es für alle Domains funktioniert?
Eine .htaccess Datei mit folgendem Inhalt sollte es tun:
RewriteEngine On
RewriteRule !^script.php$ /script.php
Wobei script.php dein PHP Script ist, auf das alle Aufrufe umgeleitet werden sollen und welches im Document Root liegt (ebenso wie die .htaccess)
MfG, Dennis.
Hi Stefan,
Ok, das Script ist kein großes Problem, wobei ich PHP bevorzuge. Aber wie leite ich alle Requests auf dieses Script um? Und wo lege ich das Script ab, damit es für alle Domains funktioniert?
Wie der Zufall es so wollte, musste ich gestern Abend für ein Update eine Webseite vorübergehend nicht verfügbar machen - mir war also die gleiche Aufgabe gestellt. Gleichzeitig sollte der Zugriff von meiner IP aus mit der ich zu der Zeit im Internet war noch möglich sein. So hab ich es gelöst:
RewriteCond %{REMOTE_ADDR} !^80.134.58.48$
RewriteCond %{REQUEST_URI} !^/error/503.php$
RewriteRule .* /error/503.php
Einfach in die .htaccess im Document Root. Das PHP Script 503.php beginnt so:
<?php
header($_SERVER['SERVER_PROTOCOL'] . " 503 Service Unavailable");
?>
Bin mir nicht ganz sicher, ob das so richtig ist, es funktioniert aber (zumindest bei meinen Tests).
MfG, Dennis.