Kalle_B: Haltbarkeitsdatum (expires?)

Hallöle,

per PHP erzeuge ich HTML- Dateien, die von Suchmaschinen gelistet werden.

Bei einem Veranstaltungskalender werden vergangene Veranstaltungen aus der Datenbank gelöscht, deshalb macht auch der Link in Suchmaschinen keinen Sinn mehr.

Hatte gehofft, mit
<meta http-equiv="expires"          content="05 Sep 2008 23:59:59 GMT">

ein Verfalldatum anzugeben. Heute, am 14.9. ist die SEite jedoch noch in Google gelistet.

Ignoriert Google die Angabe oder habe ich etwas falsch gemacht?

LG Kalle

  1. Guten Tag,

    Ignoriert Google die Angabe oder habe ich etwas falsch gemacht?

    Du hast den Sinn der Angabe missverstanden. Lies dazu mal den Eintrag hier bei http://de.selfhtml.org/html/kopfdaten/meta.htm#laden@title=SelfHTML.

    Möchtest du eine Ressource aus einer Suchmaschine entfernen, solltest du nach Ablauf der Gültigkeitsdauer bei Aufruf der Ressource einen 410-Gone-Statuscode schicken.

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer
    1. Möchtest du eine Ressource aus einer Suchmaschine entfernen, solltest du nach Ablauf der Gültigkeitsdauer bei Aufruf der Ressource einen 410-Gone-Statuscode schicken.

      Ich glaube, damit kann Google auch nichts anfangen:

      "Es wurden keine mit Ihrer Suchanfrage - 410-Gone-Statuscode - übereinstimmenden Dokumente gefunden."

      LG Kalle

      1. Guten Tag,

        Ich glaube, damit kann Google auch nichts anfangen:
        "Es wurden keine mit Ihrer Suchanfrage - 410-Gone-Statuscode - übereinstimmenden Dokumente gefunden."

        Google

        Gruß
        Christoph Jeschke

        --
        Zend Certified Engineer
        1. Guten Tag,

          Google

          Es ist ja unglaublich, wie sich alle Webseiten um die Syntax drücken. Ich habe bereits eine header-Zeile:
          header('content-type: text/html; charset=utf-8');

          Füge jetzt diese hinzu:
          header('410');

          Mal schauen, ob es funzt. Ich liebe dies TRY- and ERROR- Methoden (würg).

          LG Kalle

          1. Füge jetzt diese hinzu:
            header('410');

            Mal schauen, ob es funzt. Ich liebe dies TRY- and ERROR- Methoden (würg).

            Nein, hat nicht gefunzt. Aber so schnell gibt man ja nicht auf.

            header('HTTP-status=410');  // nöö
            header('HTTP-status-code=410');  // nöö
            header('HTTP-status-code:410');  // nöö
            header('HTTP-status:410');  // nöö

            Es gibt doch nur noch 1745 Möglichkeiten, so schnell gibt man nicht auf ... (würg)

            LG Kalle

            1. Hallo,

              Füge jetzt diese hinzu:
              header('410');

              Mal schauen, ob es funzt. Ich liebe dies TRY- and ERROR- Methoden (würg).

              Nein, hat nicht gefunzt. Aber so schnell gibt man ja nicht auf.
              Es gibt doch nur noch 1745 Möglichkeiten, so schnell gibt man nicht

              Wie wär's mit der PHP-Doku?

              viele Grüße

              Axel

              1. Hallo,

                Wie wär's mit der PHP-Doku?

                Die Idee hatte ich mittlerweile auch:
                header("HTTP/1.0 410 Gone");

                aber bei Aufruf der Seite bringt der FF keinen entspr. Hinweis, nur meinen Text, der vorher auch schon da war:
                "Keine Veranstaltung (mehr) vorhanden für termin_id=[338].
                Veranstaltungen werden bei Ende gelöscht."

                Allerdings kommt auch hier keine entspr. Anzeige:
                header("HTTP/1.0 404 Not Found");

                Mein Ziel ist es, dem Menschen im KLartext zu sagen, warum es diese Seite nicht mehr gibt und dem Browser zu sagen, er soll sie aus dem Index nehmen.

                Wierreiche ich das?

                Kalle

                1. Moin!

                  aber bei Aufruf der Seite bringt der FF keinen entspr. Hinweis, nur meinen Text, der vorher auch schon da war:
                  "Keine Veranstaltung (mehr) vorhanden für termin_id=[338].
                  Veranstaltungen werden bei Ende gelöscht."

                  Hast du schon mal einen Browser den HTTP-Statuscode anzeigen gesehen?

                  Antwort: Ja, in der Live HTTP headers-Extension vom Firefox! Ansonsten nicht.

                  Allerdings kommt auch hier keine entspr. Anzeige:
                  header("HTTP/1.0 404 Not Found");

                  Mein Ziel ist es, dem Menschen im KLartext zu sagen, warum es diese Seite nicht mehr gibt und dem Browser zu sagen, er soll sie aus dem Index nehmen.

                  Der Browser führt keinen Index, das tun Suchmaschinen. Für den Menschenklartext bist du selbst zuständig, indem du passenden HTML-Inhalt generierst. Für die Suchmaschine gibts den Statuscode.

                  - Sven Rautenberg

                  --
                  "Love your nation - respect the others."
                2. Hallo,

                  Wie wär's mit der PHP-Doku?

                  Die Idee hatte ich mittlerweile auch:
                  header("HTTP/1.0 410 Gone");

                  aber bei Aufruf der Seite bringt der FF keinen entspr. Hinweis, nur meinen Text, der vorher auch schon da war:
                  "Keine Veranstaltung (mehr) vorhanden für termin_id=[338].
                  Veranstaltungen werden bei Ende gelöscht."

                  Natürlich, man kann doch auch Fehlerseiten selbst gestalten. Hast Du mal im FireFox Extras-Seiteninformationen-Header aufgerufen?

                  Allerdings kommt auch hier keine entspr. Anzeige:
                  header("HTTP/1.0 404 Not Found");

                  Welche Anzeige erwartest Du im Browser? Hast Du diese Header-Angabe mal mit dem IE6 ausprobiert ;-)?

                    
                  <?php  
                  header('HTTP/1.0 404 Not Found');  
                  header('content-type: text/html; charset=UTF-8');  
                  ?>  
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                          "http://www.w3.org/TR/html4/strict.dtd">  
                  <html>  
                  <head>  
                  <title>Fehlerseite 404</title>  
                  <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
                  </head>  
                  <body>  
                  Fehlerseite  
                  </body>  
                  </html>  
                  
                  

                  Das funktioniert bei mir wie erwartet.

                  Mein Ziel ist es, dem Menschen im KLartext zu sagen, warum es diese Seite nicht mehr gibt und dem Browser zu sagen, er soll sie aus dem Index nehmen.
                  Wierreiche ich das?

                  Welchen Index im Browser meinst Du? Meinst Du den Index von Suchmaschinen? Dann mit

                    
                  header('HTTP/1.0 410 Gone');  
                  
                  

                  viele Grüße

                  Axel

                  1. Hallo,

                    header('content-type: text/html; charset=UTF-8');

                    \*grrr\*  
                    ~~~php
                      
                    header('Content-Type: text/html; charset=UTF-8');  
                    
                    

                    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17

                    viele Grüße

                    Axel

                    1. Hi,

                      http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17

                      Irgendwo in der (oder einer anderen) RFC wirst Du nachlesen können, daß das eh *nicht* case-sensitive ist.

                      Gruß, Cybaer

                      --
                      Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
                      (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
          2. Moin!

            Google

            Es ist ja unglaublich, wie sich alle Webseiten um die Syntax drücken. Ich habe bereits eine header-Zeile:
            header('content-type: text/html; charset=utf-8');

            Die Header-Funktion erwartet eine korrekte HTTP-Headerzeile. Du mußt also wissen, wie HTTP funktioniert, um korrekte Zeilen schreiben zu können.

            Füge jetzt diese hinzu:
            header('410');

            Die Aufgabe ist, einen HTTP-Status zu setzen. Und zwar so, dass es in HTTP korrekt formuliert ist. Wie schwierig ist es, herauszufinden, wie man HTTP-Statuscodes korrekt formuliert?

            Mal schauen, ob es funzt. Ich liebe dies TRY- and ERROR- Methoden (würg).

            Man _könnte_ ja auf die Idee kommen, die PHP-Doku zu konsultieren. Oder die HTTP-Doku.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
          3. Hi,

            Mal schauen, ob es funzt. Ich liebe dies TRY- and ERROR- Methoden (würg).

            Mich erstaunt, wie oft du dich auf diese verlassen musst - obwohl du das ganze doch irgendwie beruflich machst.

            MfG ChrisB

            --
            "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
  2. Moin!

    per PHP erzeuge ich HTML- Dateien, die von Suchmaschinen gelistet werden.

    Bei einem Veranstaltungskalender werden vergangene Veranstaltungen aus der Datenbank gelöscht, deshalb macht auch der Link in Suchmaschinen keinen Sinn mehr.

    Hatte gehofft, mit
    <meta http-equiv="expires"          content="05 Sep 2008 23:59:59 GMT">

    ein Verfalldatum anzugeben. Heute, am 14.9. ist die SEite jedoch noch in Google gelistet.

    Ignoriert Google die Angabe oder habe ich etwas falsch gemacht?

    1. Nicht alle Angaben, die in die HTTP-Header gehören und stattdessen ersatzweise im HTML-Teil als Meta-Element geliefert werden, müssen zwingend Beachtung finden. Es scheint mir deutlich schlauer, solche Angaben IMMER als HTTP-Header auszuliefern.

    2. Die Expires-Angabe bezieht sich auf das Ungültigwerden in Caches. Ein Client kann bis zum Erreichen der Datumsangabe die Ressource im Cache nutzen, ohne erneut beim Server nachzufragen. Die Angabe ist nicht dazu da, einer Suchmaschine zu sagen, dass nach dem Datum das Suchergebnis nicht mehr angezeigt werden soll.

    3. Empfehlenswert wäre, Requests auf die URL des fraglichen Ereignisses nach Erreichen des Ablaufdatums explizit mit HTTP-Status "410 Gone" zu beantworten - das signalisiert jedem Spider eindeutig, dass diese Seite wirklich absichtlich weg ist und aus dem Index entfernt werden soll. Aber diese Vorgehensweise garantiert trotzdem keine zeitnahe Entfernung aus dem Index.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."