1. #1
    Lt. Commander
    Dabei seit
    Dez 2006
    Beiträge
    1.230

    [PHP] Wartungsseite ausgeben und Webseite sperren!

    Hallo Leute

    Was wäre die einfachste und sicherste Lösung?

    Vorhaben:
    CronJob startet um 3:00h ein Wartungsscript, dieses macht was an der Datenbank wie auch an einigen Textdateien. Zu dieser Zeit würde ich gerne die Webseite für alle sperren - auch für Bots.

    Nun, ich könnte in dem Script was vom CronJob gestartet wird, erst die htaccess austauchen, nur wie mache ich das wieder rückgängig? also wenn die Arbeiten an der DB erlediegt sind?

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Vice Admiral
    Dabei seit
    Okt 2010
    Beiträge
    6.889

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Du könntest am Anfang des CronJobs die htaccess anpassen und einen 303 oder 307 Redirect ausgeben (Moved Temporarily). Am Ende entfernst du die Zeile wieder (oder kopierst die originale Datei wieder zurück) und schon läuft alles wieder problemlos.

  4. #3
    Cadet 4th Year
    Dabei seit
    Dez 2005
    Beiträge
    99

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Hm. Womöglich einfach 'danach'?
    [...]Schneller PC[...]

  5. #4
    Commodore
    Dabei seit
    Mär 2008
    Beiträge
    4.381

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Würde ich lassen dadurch kannst du dir so derartig dein Google Ranking zerschießen das glaubst du nicht.
    Always be yourself. Unless you can be Batman, always be Batman


    I've lost a machine... literally _lost_ it responds to ping, it works completely, I just can't figure out where in my apartment it is.

  6. #5
    Lt. Junior Grade
    Dabei seit
    Apr 2009
    Ort
    Ulm an der Donau
    Beiträge
    464

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Zitat Zitat von Revolution Beitrag anzeigen
    Würde ich lassen dadurch kannst du dir so derartig dein Google Ranking zerschießen das glaubst du nicht.
    Wieso das? O.o

  7. #6
    Captain
    Dabei seit
    Sep 2005
    Ort
    Italy
    Beiträge
    3.294

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Warum die 3xx Redirects? Der korrekte Errorcode ist '503 Service Unavailable'.


    Das Ranking wird zerschossen, wenn man mit falschen Statusmeldungen, wie Redirects herumspielt, ein '503 Service Unavailable' hingegen sagt genau folgendes aus:
    Zitat Zitat von RFC 2616 section 10.5.4
    10.5.4 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.

    Note: The existence of the 503 status code does not imply that a
    server must use it when becoming overloaded. Some servers may wish
    to simply refuse the connection.
    #Core2Quad Q9550 #8GB DDR800 #Asus P5Q Pro
    #Ati HD4870 #Audigy 2ZS an Teufel CEM 5.1 #Samsung F1 1TB


  8. #7
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Dez 2006
    Beiträge
    1.230

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Zitat Zitat von VPN-User Beitrag anzeigen
    Hm. Womöglich einfach 'danach'?
    Zitat Zitat von Yuuri Beitrag anzeigen
    Du könntest am Anfang des CronJobs die htaccess anpassen und einen 303 oder 307 Redirect ausgeben (Moved Temporarily). Am Ende entfernst du die Zeile wieder (oder kopierst die originale Datei wieder zurück) und schon läuft alles wieder problemlos.
    Ich dachte eher an sowas:
    Code [php]:
    RewriteRule !maintenance\.html http://www.seite.de/maintenance.html [R]
    Dafür muss ich doch keinen ErrorCode liefern, wozu? für Google?

  9. #8
    Lt. Commander
    Dabei seit
    Jun 2006
    Ort
    In meinen Gedanken
    Beiträge
    1.585

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    @Belee
    Wie lange braucht denn dein CronJob? Hast du mal die Ausfrühungszeit protokolliert?

    Weil die HTTP-Status-Codes dafür gedacht sind...?!

    Zudem solltest du bedenken, dass nicht nur Google sondern auch Browser zwischen 2xx, 3xx, 4xx & 5xx unterscheiden können. 5xx zeigt, dass nicht der Klient das Problem ist.
    Geändert von Eagle-PsyX- (30.06.2011 um 22:22 Uhr)

  10. #9
    Lt. Commander
    Dabei seit
    Jun 2005
    Beiträge
    1.084

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Zitat Zitat von Belee Beitrag anzeigen
    Dafür muss ich doch keinen ErrorCode liefern, wozu? für Google?
    Richtig, für Suchmaschinen. Die wollen gerne wissen warum sich was verändert hat. Deshalb sollte man immer den korrekten Statuscode benutzen.

    Zitat Zitat von Belee Beitrag anzeigen
    Code [php]:
    RewriteRule !maintenance\.html http://www.seite.de/maintenance.html [R]
    Damit machst du einen Redirect mir 302 ("See Other"). Richtig wäre wie luky37 schon gesagt hat 503, denn deine Seite wurde ja nicht verschoben sondern ist nur gerade nicht erreichbar.
    Du solltest also besser einen Redirect mit 503 machen:
    Code [php]:
    RewriteRule !maintenance\.html http://www.seite.de/maintenance.html [R=503]
    Für den User sieht es gleich aus, aber Suchmaschinen wissen, dass du nur eine Wartung durchführst.
    Desktop [ sysProfile [ Windows 7 Professional x64 ] ]
    Notebook [ Lenovo ThinkPad T420 [ Windows 7 Professional x64 ] ]
    Phone [ Samsung Galaxy S2 [ CyanogenMod 10.1 | Android 4.2.2 ] ]

  11. #10
    Captain
    Dabei seit
    Nov 2008
    Beiträge
    3.432

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Mich würde viel mehr interessieren, warum du die Webseite sperren musst, ein Backup kann eigentlich parallel zum normalen Betrieb gemacht werden, da braucht nix gesperrt werden.
    Maximal wird die Webseite eben in einen degraded-Mode versetzt bei der einige Funktionalitäten deaktiviert werden und ein 503 Service Unavailable zurückgegeben wird.

  12. #11
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Dez 2006
    Beiträge
    1.230

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Zitat Zitat von Eagle-PsyX- Beitrag anzeigen
    @Belee
    Wie lange braucht denn dein CronJob? Hast du mal die Ausfrühungszeit protokolliert?

    Weil die HTTP-Status-Codes dafür gedacht sind...?!

    Zudem solltest du bedenken, dass nicht nur Google sondern auch Browser zwischen 2xx, 3xx, 4xx & 5xx unterscheiden können. 5xx zeigt, dass nicht der Klient das Problem ist.
    Hi @eagle..

    Der brauch ca. ne Minute (bis jetzt), deshalb habe ich mir auch nie Gedanken drum gemacht, weils ja nix ist.

    @TheCadillacMan
    Ja, werde ich dann auch so machen, danke.

    Also sollte man Redirekts allgemein nicht benutzen? bzw. nur wenn sich Seiten verschieben? und ist das ein MUSS? weil, stell dir vor du veränderst die ganze Struktur der Seite, willst du dann jede Seite redirecten?

    @ice...
    Weil noch eine Masse an Dateien verändert werden, sowie gelöscht usw.
    Wenn ich jetzt die Seite online lasse und jedemand fordert so eine Seite an, dann, naja gut, ich kann die Fehler abstellen doch es würde halt nicht schön aussehen, deshalb lieber zu und dann weiß jeder was los ist.

    Nochwas zu den bösen Redrects...ich habe z.B. in jedem Verzeichnis eine index.php, die sieht so aus..
    Code [php]:
    <?php
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://".$_SERVER['SERVER_NAME']."/");
    header("Connection: close");
    exit;
    ?>
    Ist das schädlich für Google?
    Geändert von Belee (30.06.2011 um 23:16 Uhr)

  13. #12
    Lieutenant
    Dabei seit
    Jan 2009
    Beiträge
    784

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Zitat Zitat von Belee Beitrag anzeigen
    Also sollte man Redirekts allgemein nicht benutzen? bzw. nur wenn sich Seiten verschieben? und ist das ein MUSS? weil, stell dir vor du veränderst die ganze Struktur der Seite, willst du dann jede Seite redirecten?
    Wenn du den Linkjuice aller Seiten behalten möchtest wäre dies sehr sinnvoll, wenns dir wurscht ist dann nicht. Google findet das auch so wieder, nur kann dann die Indexierung der neuen alten Seiten wieder eine ganze Ecke dauern und die Suchergebnisse bzw. Links verweisen auf Seiten die nicht mehr existieren.

  14. #13
    Captain
    Dabei seit
    Sep 2005
    Ort
    Italy
    Beiträge
    3.294

    [PHP] AW: Wartungsseite ausgeben und Webseite sperren!

    Einen redirect sollte man benutzen, wenn sich die URL temporär oder permanent ändert. Bei allen anderen Situationen sollte ein redirect nicht benutzt werden, weil es keinen Sinn macht.

    Wenn der Request nicht erlaubt ist (403), sich der Content nicht finden lässt (404), wenn der Content entfernt wurde (410), oder wenn der Service temporär nicht verfügbar ist wegen Wartungsarbeiten oder Überlast (503), all dass und noch mehr kann man durch den Statuscode ausdrücken.

    Warum es für SEO wichtig ist, den korrekten Header auszugeben?

    - wenn Google einen 410 Gone erhält, dann wird die Seite wahrscheinlich aus dem Index gestrichen
    - wenn Google öfters 404 Not found erhält, dann wird auch hier die URL aus dem Index entfernt (+ die Seite abgewertet)
    - wenn Google einen permanenten Redirect erhält, dann wird die URL im Index durch deine Wartungsarbeiten URL ausgetauscht, inklusive Content

    Wenn du Google hingegen den, in diesem Fall korrekten Status '503 Service Unavailable' ausgibst, dann versteht der Googlebot, dass der aktuelle Content auf der Seite nicht ausschlaggebend ist, es sich nur um ein temporäres Problem handelt und der Aufruf später wiederholt werden kann.
    #Core2Quad Q9550 #8GB DDR800 #Asus P5Q Pro
    #Ati HD4870 #Audigy 2ZS an Teufel CEM 5.1 #Samsung F1 1TB


Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •