mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 16:27 Benutzername: Passwort: Auto-Login

Thema: Caching | php => javascript vom 17.03.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> Caching | php => javascript
Autor Nachricht
m
Moderator
Threadersteller

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 17.03.2010 16:41
Titel

Caching | php => javascript

Antworten mit Zitat Zum Seitenanfang

Hey. Ich möchte gerne dynamisch erzeugte javascript cachen, habe damit aber nun folgendes Problem:


Ich leite alle Anfragen zu index.php um

Code:
RewriteCond %{REQUEST_URI} !^/(bestimmtes_verzeichnis)
RewriteRule . index.php [QSA,L]


Nun wird zum Beispiel http://example.org/eine_datei.js angefordert
wodurch dieses php script ausgeführt wird (gekürzt):

Code:
header("Content-Type: application/x-javascript");         
header("Last-Modified: " . gmdate("D, d M Y H:i:s", strtotime($date) . " GMT");
echo 'document.write("test");';


htaccess ausschnitt:

Code:
<IfModule mod_headers.c>
  <FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </FilesMatch>
  <FilesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </FilesMatch>
  <FilesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=3600, private, must-revalidate"
  </FilesMatch>
</IfModule>


Nun wird die Datei allerdings mit max-age=3600 ausgeliefert.

Code:
Date: Wed, 17 Mar 2010 15:42:06 GMT
Server: Apache/2.2
X-Powered-By: PHP/5.2.12
Expires: Thu, 18 Mar 2010 15:42:07 GMT
Cache-Control: max-age=3600, private, must-revalidate
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 49
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: application/javascript
200 OK



Das liegt an der Rewrite Rule zu index.php? Nur wie löse ich das jetzt am besten?

Am besten ich prüfe auf die Endung der REQUEST URI oder? Bin nur leider damit
überfragt wie ich dass in dem htaccess file am besten löse.



Vielen Dank Lächel


Zuletzt bearbeitet von m am Mi 17.03.2010 17:15, insgesamt 6-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht: Männlich
Verfasst Mi 17.03.2010 20:51
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich denke mod_headers geht mit Filesmatch wirklich auf die physikalische Datei, in deinem Fall die index.php. Es werden ja auch die "richtigen" Header gesendet.

Ich würde es so lösen: Mit mod_headers nur wirklich statische Dateien behandeln, also .php raus. Ist auch sinnlos, denn in deiner/deinen php(s) kannst du ja beliebige cache header je nach Wunsch selbst senden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
m
Moderator
Threadersteller

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 17.03.2010 21:12
Titel

Antworten mit Zitat Zum Seitenanfang

Eistee hat geschrieben:
Ich würde es so lösen: Mit mod_headers nur wirklich statische Dateien behandeln, also .php raus. Ist auch sinnlos, denn in deiner/deinen php(s) kannst du ja beliebige cache header je nach Wunsch selbst senden.


Hey, danke, genauso habe ich es jetzt auch gelöst. Ich dachte nur evtl gibt es eine
Möglichkeit auf die angeforderte URI zu reagieren.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht: Männlich
Verfasst Mi 17.03.2010 21:50
Titel

Antworten mit Zitat Zum Seitenanfang

Hm, dafür müsste mod_headers bei den Filesmatch auch regex können, kann es das? Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator
Threadersteller

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 17.03.2010 21:59
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, nur bezieht sich die FilesMatch directive ja auf die tatsächliche angeforderte Datei.

Ich denke LocationMatch wäre passend, lässt sich aber nicht in htaccess Dateien ausführen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht: Männlich
Verfasst Mi 17.03.2010 22:03
Titel

Antworten mit Zitat Zum Seitenanfang

Achso, ich dachte du willst die index.php ausschliessen und alle anderen .php im Filesmatch lassen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [PHP] file based caching
Smarty Templates, include, caching
Flash und XML Datei: Wie caching im Browser verhindern?
[javascript] mit <select> feld wert an javascript funk
javascript in php
ist das javascript ?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.