Header doppelt

  • Keine Ahnung warum, aber mein Cache-Control-Header ist doppelt. Gut, warum er doppelt ist weiß ich eigentlich, aber ich bekomme ihn nicht "vereinfacht".


    Mein Server (Apache) selbst schickt den Header hier raus:


    cache-control: must-revalidate, proxy-revalidate, private


    Ein Script von mir, das mir einen Etag für dynamische PHP-Files bildet den hier:


    cache-control: private, must-revalidate, proxy-revalidate


    Ist also der gleiche Header, nur anders zusammengestellt. Ok. Gedanke ganz einfach, oder? In PHP entfernen und gut ist, denn der Apache macht es ja selbst. Aber nob. Wenn ich ihn in PHP entferne, dann verschwinden beide und es kommt:


    cache-control: no-cache


    Hat einer eine Idee?

  • Hast Du schonmal probiert, es in PHP zu entfernen und ihn dann in die .htaccess zu schreiben?
    So ala


    Falls es mit

    Code
    Header unset Cache-Control

    nicht geht, versuche mal

    Code
    <IfModule mod_expires.c>
    ExpiresActive Off
    </IfModule>

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • ROFL
    Hab eben bei mir im Shop geguckt und ein


    Code
    content-encoding: br

    gefunden.
    Ich wollte schon fast ganz empört Alex eins reinwürgen, weil da "Brasilianisch" steht, aber dann kam ich drauf, das das ja für "Brotli" steht...
    Haste Schwein gehabt, Alex^^

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Erste Frage ja, denn das ist ja genau das, was doppelt ist. Also in der htaccess steht es ohnehin drinnen (cache-control an, Etag aus), in PHP in dem einen Script auch, nur eben in unterschiedlicher Reihenfolge, also das "must-revalidate, proxy-revalidate, private". Wenn ich aber in PHP die Anweisung entferne, dann ist die von Apache auch weg. Dann kommt "cache-control: no-cache" (wohl durch die PHP-Session).


    Den Rest muss ich erst testen.

  • Da steht also in der httpd.conf absolut nichts mehr von wegen cache-control drin?
    (Da kommt das doch normalerweise her, oder?

    Wie ist da eigentlich die Reihenfolge:
    Zuerst werden die Anweisungen des Servers genommen, dann die der .htaccess und erst dann die aus Deinem php-script?
    Oder genau umgekehrt?

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Nee, in der steht nix, also in der httpd.conf. Meine Anweisungen selbst sind in der vhost.conf, htaccess nutze ich gar nicht.


    Die Reihenfolge müsste Server -> PHP sein.


    Aber Du bringst mich gerade auf eine Idee. Einen "unset" in PHP senden. Denn der erste kommt ja von Apache, der zweite dann von PHP. Lösche ich den in PHP dann schickt php aber auf Grund der Session automatisch ein "cache-control: no-cache" raus. Vielleicht schicken die vorher ja auch einen "unset"? Würde erklären, warum der dann nicht doppelt ist und beide eigentlichen weg sind.

  • Ich hatte bei mir auch so ein Gedöhns mit den response headern^^
    Bei mir war natürlich Alex dran schuld. Klar.

    Und als ich dann mit diversen headern in der .htaccess und per php rumgefummelt habe, habe ich irgendwann mal die richtige Kombi gefunden.
    Aber eher durch Trial & Error, als durch überlegenes Fachwissen :)

    Wer zuerst "Datenschutz" sagt, hat verloren.