/ / masywny problem z buforowaniem i ModExpire na plikach php - php, .htaccess, buforowanie, wygasanie modów

ogromny problem z buforowaniem i ModExpire na plikach php - php, .htaccess, caching, mod-expires

Mam ogromny problem z buforowaniem i ModExpire na plikach php, jeśli używam następujących w moim globalnym .htaccess

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/xhtml-xml "access plus 600 seconds"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
</IfModule>
<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 ".(php)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
</ifmodule>

Jeśli korzystam z pliku php, który zwraca wartość i oszczędza coś. w MySQL DB muszę przeładowywać dwa lub trzy razy, aż wszystko zostanie wykonane poprawnie.

Próbowałem również wykonać następujące kroki w określonym pliku bez powodzenia (jak wspomniano tutaj Jak zapobiec buforowaniu plików http w httpd Apache (MAMP) )

<files folder/file.php>
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</files>

to samo, jeśli wstawię no-cache do folderów htaccess

Odpowiedzi:

1 dla odpowiedzi № 1

Aby zapobiec buforowaniu plików php, spróbuj usunąć ExpiresByType application/xhtml-xml, który jest dla PHP.

IMHO możesz również usunąć FilesMatch dla plików PHP.


0 dla odpowiedzi nr 2

Dwie linie „ExpiresByType” są prawdopodobnie przyczyną tego problemu, jak już zidentyfikowano.

Twoje pliki .php zwracają dokumenty typu text / html lub application / xhtml-xml. Tak więc nagłówki ustawiane przez FilesMatch * .php są sprzeczne z poprzednimi wpisami. Który jest następnie wybrany? Nie wiem.

Zasadniczo wyniki wykonywania plików PHP rzadko powinny być buforowane.