kostenloser Webspace werbefrei: lima-city


htacces umleitung auf eine 503 Seite

lima-cityForumDie eigene HomepageInternet Allgemein

  1. Autor dieses Themas

    w***********2

    Guten Abend.
    Da ich Wartungsarbeiten plane, würde ich gerne meine Webseite per Statuscode 503 vom Netz nehmen.
    Nun stellst sich mir die Frag: Wie mache ich das?
    Kann man das mit der htacces regeln? Oder wie funktioniert das?

    Und das wichtigste: Ich will eine richtige Lösung die Google nicht beeinträchtigt.
    Durch den falschen Einsatz von Wartungsarbeiten-Seiten wird viel Potential verschenkt. Im Idealfall gibt man den Bots einen Status Code 503 Service Unavailable mit Retry-After header (Einschätzung wie lange der Ausfall dauert) zurück und gibt den menschlichen Usern eine informative Seite zurück, mit der Möglicheit z.B. telefonisch zu bestellen.
    Quelle: http://www.traffictrends.de/wartungsarbeiten-und-status-code-503-service-unavailable.html


    Währe froh wenn mir jemand helfen würde :)

    Grüsse weissertiger2
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Versuch es so:
    <?php
    header('HTTP/1.1 503 Service Unavailable');
    ?><html>
    	<head>
    		<title>Wartungsarbeiten</title>
    	</head>
    	<body>
    		<p>Die gewünschte Seite ist aufgrund von Wartungsarbeiten vorübergehend nicht verfügbar.</p>
    	</body>
    </html>
    Du kannst da irgendwas hinschreiben, wichtig ist nur der header()!
  4. Autor dieses Themas

    w***********2

    Ich danke dir viel mal @hackyourlife :thumb:.
    Ich habe aber noch was:
    Ich kenne mich da nicht aus, aber habe gelesen, das man retray und conection: close setzen muss. (oder so)

    Kann mich da auch noch jemand aufklären? :)
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    weissertiger2 schrieb:
    Ich kenne mich da nicht aus, aber habe gelesen, das man retray und conection: close setzen muss. (oder so)
    Connection: close
    heißt, dass die Verbindung zum Server geschlossen wird, nachdem die Anfrage abgearbeitet wurde (also kein Keep-Alive!). Dies sollte (soweit ich weiß) der Webserver selber machen.
    HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion of the response. For example,

    Connection: close

    in either the request or the response header fields indicates that the connection SHOULD NOT be considered `persistent' (section 8.1) after the current request/response is complete.

    HTTP/1.1 applications that do not support persistent connections MUST include the "close" connection option in every message.


    Zum 503-Statuscode:
    503 Service Unavailable

    The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.
    Also: Retry-After sagt nach wie viel Zeit der Service wieder verfügbar sein sollte:
    The Retry-After response-header field can be used with a 503 (Service Unavailable) response to indicate how long the service is expected to be unavailable to the requesting client. This field MAY also be used with any 3xx (Redirection) response to indicate the minimum time the user-agent is asked wait before issuing the redirected request. The value of this field can be either an HTTP-date or an integer number of seconds (in decimal) after the time of the response.


    Und solche Header setzt du über
    header('Retry-After: 42');
    , falls du das noch nicht wissen solltest.
  6. Autor dieses Themas

    w***********2

    hackyourlife schrieb:
    Connection: close
    heißt, dass die Verbindung zum Server geschlossen wird, nachdem die Anfrage abgearbeitet wurde (also kein Keep-Alive!). Dies sollte (soweit ich weiß) der Webserver selber machen.
    Okay, Danke :thumb:.
    hackyourlife schrieb:
    Also: Retry-After sagt nach wie viel Zeit der Service wieder verfügbar sein sollte.
    Und solche Header setzt du über
    header('Retry-After: 42');
    So?
    <?php
    header('HTTP/1.1 503 Service Unavailable');
    header('Retry-After: 42');
    ?><html>
    	<head>
    		<title>Wartungsarbeiten</title>
    	</head>
    	<body>
    		<p>Die gewünschte Seite ist aufgrund von Wartungsarbeiten vorübergehend nicht verfügbar.</p>
    	</body>
    </html>

    42 heisst, als das zbs. der Google Bot in 42 Sekunden wieder vorbeischauen darf?
    hackyourlife schrieb:
    falls du das noch nicht wissen solltest.
    Ne, weiss ich nicht. Danke :thumb:.
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    weissertiger2 schrieb:
    So?
    <?php
    header('HTTP/1.1 503 Service Unavailable');
    header('Retry-After: 42');
    ?><html>
    	<head>
    		<title>Wartungsarbeiten</title>
    	</head>
    	<body>
    		<p>Die gewünschte Seite ist aufgrund von Wartungsarbeiten vorübergehend nicht verfügbar.</p>
    	</body>
    </html>

    42 heisst, als das zbs. der Google Bot in 42 Sekunden wieder vorbeischauen darf?
    Richtig. Um zu prüfen ob das funktioniert solltest du ein Programm wie Wireshark installieren und schauen ob der HTTP-Header stimmt.
    Wenn du Firefox hast kannst du auch "Live HTTP headers" installieren (Add-On) und bei den "Seiteninformationen" die HTTP-Header prüfen.
  8. Man sollte aber um die Performance zu schonen einen Retry-After von mindestens 300 einstellen.

    Was von viele empfohlen wird.

    Und in PHP solltest du möglichst ebenso die
    Connection: close.
    setzen. Damit alles wunderbar ist.

    Der empfohlene PHP-Teil:

    <?php
    header('HTTP/1.1 503 Service Unavailable');
    header("Status: 503 Service Unavailable");
    header('Retry-After: 300');
    header('Connection: close');
    ?>


    Der Status mit 503 ist für ätere Browser die kein HTTP/1.1 beherschen... und wird ebenso für fcgi/FastCGI benötigt.

    Beitrag zuletzt geändert: 11.2.2012 12:52:24 von dexus85
  9. Autor dieses Themas

    w***********2

    Okay Danke viel mal @hackyourlife & @dexus85 :thumb:

    Jetzt aber noch was: Wie kriege ich eine ganze Domain dazu den 503 Fehler anzuzeigen?

    example.tld/irgendwas
    example.tld/das-zweite-irgendwas
    example.tld/naja
    example.tld/das dritte-irgendwas

    Mit einer htacces, oder?
    Hierbei kenne ich leider nur die Version für einen 404 Fehler:
    ErrorDocument 404 /index.html
    Aber so wird doch zuerst einen 404 ausgegeben und erst danach sobald umgeleitet wurde ein 503.
    Wie mache ich das richtig?

    Beitrag zuletzt geändert: 11.2.2012 15:08:12 von weissertiger2
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    weissertiger2 schrieb:
    Jetzt aber noch was: Wie kriege ich eine ganze Domain dazu den 503 Fehler anzuzeigen?
    Mit mod_rewrite könntest du das machen:
    RewriteEngine on
    RewriteRule ^(.*)$ 503.php [NC]
  11. Autor dieses Themas

    w***********2

    Danke viel mal @hackyourlife :thumb:
    Es funktioniert: http://503.markus-mail.com/ :smile:
  12. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du könntest noch etwas verbessern: da auf der Seite Umlaute vorkommen, solltest du diese als UTF-8 speichern und im Header mitteilen, dass es sich um UTF-8 handelt.
    Ansonsten riskierst du, dass in manchen Ländern irgendwelche Zeichen statt ü, ... auftauchen.
  13. anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    hackyourlife schrieb:
    Du könntest noch etwas verbessern: da auf der Seite Umlaute vorkommen, solltest du diese als UTF-8 speichern und im Header mitteilen, dass es sich um UTF-8 handelt.
    Ansonsten riskierst du, dass in manchen Ländern irgendwelche Zeichen statt ü, ... auftauchen.

    Oder direkt die bessere Variante: Einfach die Sonderzeichen umschreiben:
    ä -> &auml; Ä -> &Auml;
    ö -> &ouml; Ö -> &Ouml;
    ü -> &uuml; Ü -> &Uuml;
    ß -> &szlig;
  14. anti-atomkraft schrieb:
    Oder direkt die bessere Variante: Einfach die Sonderzeichen umschreiben:

    Warum sollte das die bessere Variante sein? Macht doch nur mehr Arbeit.

    Beitrag zuletzt geändert: 12.2.2012 0:13:16 von fatfreddy
  15. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    fatfreddy schrieb:
    anti-atomkraft schrieb:
    Oder direkt die bessere Variante: Einfach die Sonderzeichen umschreiben:

    Warum sollte das die bessere Variante sein? Macht doch nur mehr Arbeit.
    Dafür muss er bei so einem kurzen Dokument wie er es hat nur 3 Zeichen ersetzen und die Zeichencodierung so lassen wie sie ist. Ansonsten müsste er sich anschauen wie er die UTF-8-Codierung einsetzt. Das ist zwar normalerweise der bessere Weg, aber wegen so einem kleinen Dokument, das auch nur eine Fehlerseite beinhaltet, die mitteilen soll, dass die Seite gerade gewartet wird, ist der Aufwand für weissertieger2 zu hoch, sich UTF-8 anzuschauen.
  16. Autor dieses Themas

    w***********2

    ich danke euch viel mal für den Hinweis. Ich werde das beachten :)
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!