1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Cache-Problem - Nutzer sehen nicht die aktuelle Version der Website

Dieses Thema im Forum "Konfiguration" wurde erstellt von Johannes Ries, 8. April 2008.

  1. Johannes Ries

    Johannes Ries Well-Known Member

    Registriert seit:
    28. Februar 2005
    Beiträge:
    301
    Zustimmungen:
    0
    Auf der Website edd - entdecke dein dekanat nutze ich WordPress als CMS. Seit längerer Zeit berichten mir Nutzer, dass es zu folgendem Problem kommt:
    - auf der Startseite werden nicht die aktuellen, sondern veraltete Beiträge angezeigt
    - auch auf anderen Seiten werden z.B. die neuesten Kommentare nicht angezeigt

    Mittlerweile habe ich im head-Bereich <meta name="expires" content="0"> gesetzt und auch die interne Caching-Funktion von WordPress angewiesen, die Seiten nur für einige Stunden zu cachen. Die Nutzer berichten jedoch, dass neue Artikel über Wochen nicht angezeigt werden. Bei einigen funktioniert es wieder, wenn sie den Internetcache leeren, aber das ist ja keine Lösung, wenn ich für die Nutzung einer Website immer den Cache leeren muss. Bei einigen funktioniert es nicht mal nach Leerung des Cache korrekt.

    Das Problem besteht übrigens seit Dezember 2007. Die Seite nutzt immer die aktuellste Version von WordPress, gegenwärtig 2.5. Das Problem besteht etwa seit WordPress 2.3.

    Kennt jemand die Problematik, oder hat jemand noch eine Idee, die mir weiterhilft?!
     
    #1 Johannes Ries, 8. April 2008
    Zuletzt bearbeitet: 8. April 2008
  2. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Die Seite sendet einen falsches Datum im Response-Header:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Das hat zur Folge, daß der Browser, beim nächsten Aufruf den Server mit
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    das nächste mal den Server befragt, der aber mit
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    antwortet.
    Warum das so ist, ist schwer nachvollziehbar. Verwendest Du irgendein WP-Cache-Plugin?
    Ansonsten könntest Du versuchsweise mal folgende Zeile ganz am Anfang noch vor dem '<!DOCTYPE html PUBLIC...' in der Datei header.php des Themes einfügen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Davor oder danach dürfen keine Leerzeilen oder Leerzeichen stehen.

    Gruß
    Ingo
     
  3. Johannes Ries

    Johannes Ries Well-Known Member

    Registriert seit:
    28. Februar 2005
    Beiträge:
    301
    Zustimmungen:
    0
    Hallo Ingo,
    danke für deine ausführliche Antwort. Ich verwende kein WP-Cache-Plugin.

    Auf den Response-Header zu schauen habe ich noch gar nicht in Betracht gezogen. Danke für den Wink. Ich habe jetzt mal den nocache-Befehl mal eingefügt - aber der bringt nur was bei WP-Cache-Plugins was, oder?

    Im Moment bekomme ich:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wäre zu beobachten, ob sich das Problem gelöst hat?!

    Vielen Dank aufs erste
    Johannes
     
  4. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Sieh nach den Cache-Headern:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ja. Dafür wirst du jetzt sicher einen ziemlichen Anstieg des Website-Datenaufkommens beobachten, da die Daten eben nicht mehr aus dem Cache kommen, sondern jedesmal neu von deiner Seite geladen werden.
     
  5. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Die nocache_headers()-Funktion hat nichts mit WP-Cache-Plugins zu tun.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    sieht doch erstmal gut aus :)
    Allerdings ist das nur ein Workaround, damit wird zwar die Auswirkung "bekämpft", aber die Ursache bleibt leider im Dunkeln. Konkret stellt sich halt die Frage, wer oder was eigentlich das falsche Last-Modified setzt.

    Gruß
    Ingo
     
  6. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Bei WP werden die Seiten, von Feeds mal abgesehen, grundsätzlich nicht aus dem Cache geladen, weil der Last-Modified Wert normalerweise ganz fehlt. Besser wäre also wahrscheinlich, die Werte anstelle des Aufrufes von nocache_headers() einfach zu löschen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Gruß
    Ingo
     
    #6 Putzlowitsch, 9. April 2008
    Zuletzt bearbeitet: 9. April 2008
  7. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Ich vermute aber eher, das der Server/PHP beim Fehlen der Werte für "Expires" und "Last-Modified" diese selber setzt. Und zwar auf das Datum der index.php im WP-Wurzelverzeichnis (diese wird ja aufgerufen). Oder es ist ein großer Zufall, daß diese Datei index.php als Dateidatum den 19.11.2006 07:56 hat, zumindest wird das bei mir lokal so angezeigt :)

    Nachtrag: Oder anders herum. Also der Server setzt im Response-Header zunächts die Werte, z.B. Last-Modified auf das Dateidatum der aufgerufenen index.php. Da WP diese Werte normalerweise nicht ändert, bleiben sie also so stehen. Es könnte also doch funktionieren, wenn man diese einfach am Anfang der header.php wieder zurücksetzt.

    Es dürfte sich also um ein Konfigurationsproblem von Server/PHP handeln.

    Gruß
    Ingo
     
    #7 Putzlowitsch, 9. April 2008
    Zuletzt bearbeitet: 9. April 2008
  8. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Ist mir klar. Ist ja bei dynamischen Seiten mit ständig geänderten Inhalten auch okay. Und statische Inhalte wie Bilder sollten ja trotzdem aus dem Cache kommen. (OT: Aber warum setzt man den "Last-modified"-Header zwar bei Feeds, aber nicht bei den normalen HTML-Seiten?)

    Ich wollte oben noch dazu schreiben, dass das eben nur die Smptome bekämpft aber nicht die Ursache. Wollte aber den OP nicht verwirren. ;)

    PS: Wenn mod_headers verfügbar ist kann man die HTTP-Header vielleicht auch in der .htaccess setzen.
     
  9. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Bei Feeds ist das einfach, da kann WP direkt aus der Datenbank auslesen, wann es die letzte Änderung gab. Bei den Seiten selber allerdings nicht, gerade wegen einer Vielzahl möglicher dynamischer Inhalte, die irgendwo in der Sidebar oder sonstwo im Theme oder über Plugins eingefügt sein können.

    Ich denke mal, das die Variante mit dem Löschen der Header in der header.php am paraktikabelsten ist, wenn sie funktioniert. Nur als Workaround versteht sich, der eigentlichen Ursache sollte man schon auf die Schliche kommen.

    Gruß
    Ingo
     
  10. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Stimmt, denken wir nur mal an ein "User online:"-Plugin.
     
  11. Johannes Ries

    Johannes Ries Well-Known Member

    Registriert seit:
    28. Februar 2005
    Beiträge:
    301
    Zustimmungen:
    0
    Servus, danke für eure weiteren Worte.
     
  12. Johannes Ries

    Johannes Ries Well-Known Member

    Registriert seit:
    28. Februar 2005
    Beiträge:
    301
    Zustimmungen:
    0
    Wenn ich das so mache, dann kommt:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  13. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Hmm, das ist natürlich schlecht, der 1. Januar 1970 liegt schon sehr weit zurück. Gab es da überhaupt schon das Internet? :)

    Dann wirst Du es vorerst bei dem nocache_headers() belassen müssen. Ist allerdings schon komisch, man müßte herausfinden, wo die anderen Werte herkommen. Da habe ich jetzt aber erstmal auch keinen Ansatzpunkt.

    Gruß
    Ingo
     
  14. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Der Last-Modified-Header wird so sicher auf 0 gesetzt, und das entspricht nunmal dem 1.1.1970. Man müsste den Last-Modified-Header vielleicht auf den aktuellen Zeitstempel setzen, z.B. per date().

    Aber vielleicht kannst du mal deinen Hoster fragen, ob der irgendwelche Server-Einstellungen vorgenommen hat die diese Header beeinflussen.
     
  15. Exusu

    Exusu Active Member

    Registriert seit:
    22. Dezember 2005
    Beiträge:
    41
    Zustimmungen:
    0
    Gab es hier eine Lösung? Habe das gleiche Problem.
     
  16. egozent

    egozent Member

    Registriert seit:
    5. Juli 2006
    Beiträge:
    12
    Zustimmungen:
    0
    Würde mich auch interessieren. Bei mir existiert dieses Problem bereits seit 2 Monaten. :???:
     
  17. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Übergangslösung wären die No-Cache-Headers zu senden, wie Ingo schon schrieb:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    z.B. in die functions.php des Theme, oder in die header.php als 1. Zeile.

    Danach sollte man aber schauen, ob z.B. eine Serverfehlkonfiguration dafür verantwortlich ist, das nicht die korrekten HTTP-Header gesetzt werden.
     
  18. egozent

    egozent Member

    Registriert seit:
    5. Juli 2006
    Beiträge:
    12
    Zustimmungen:
    0
    Danke für den Tipp. Und wie mache ich das?:-|
     
  19. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Im Zweifelsfall erstmal beim Hoster anfragen.
     
  20. planetshaker

    planetshaker Member

    Registriert seit:
    13. November 2006
    Beiträge:
    16
    Zustimmungen:
    0
    Noch keine Lösung für dieses Problem? Komme auf jeden Fall nicht drauf, da ich das gleiche Problem seit dem 1.10 habe! Welche Plugins setzt ihr denn ein, wenn bei euch der Fehler auftritt? Ich benutze zur Zeit:

    Akismet 2.2.1
    Anarchy Media Player 2.0
    Brian's Latest Comments 1.5.8
    Clean Archives Reloaded 3.1.4
    Custom Smilies 1.2
    Google XML Sitemaps 3.1.0.1
    Gravatar 1.1
    Highslide Integration 1.4
    ImageManager 2.5.2
    Lighter Menus 2.7.2
    Myftp 1.2
    NextGEN Gallery 0.99.1
    o42-clean-umlauts 0.2.0
    PJW Mime Config 0.9
    Post Notification 1.2.24
    Readers_Post 1.1b
    runPHP 2.3.1
    Spruechklopfer 1.0
    WordPress Database Backup 2.2.1
    wordTube 2.0.0
    WP-Polls 2.31
    XSD Snapr 1.51
    Yet Another Related Posts Plugin

    Und eventuell kam das mit nem Update rein....
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden