Add Expire Headers in php can't make it work
Asked Answered
L

1

16

I have Yslow add-on installed

alt text

When I checks my application in Yslow I get Add Expires headers which I don't know

alt text

I searched for relevant questions in SO and also Google I found this method appropriate

<?
    header("Expires:".gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));
    header("Cache-Control: no-cache");
    header("Pragma: no-cache");
    ob_start();
    session_cache_limiter('public');
    session_start();
?>
<html>

But still it shows me same

As i am newbie I don't know much about .htaccess

Please help me improve applications performance

Thanks in advance

Wazzy

Lieselotteliestal answered 5/1, 2011 at 10:33 Comment(2)
Get firebug (or any other tool) and see that there are expire headers.Intercession
Well asked by the way, nice use of images. +1Wassail
W
15

That will only set it for your page content and not things like images and css files, i noticed on your screenshot it says 42 files, presumably these are your images, css, js etc.

Try this in your .htaccess file, note this will only work if you have mod_expires and mod_headers enabled in Apache:

<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType application/javascript "access plus 216000 seconds"  
</ifModule>

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|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 "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>
Wassail answered 5/1, 2011 at 10:43 Comment(1)
+1 for quick reply.Thanks for the answer.I will surely accept your answer if i will not get more better answer than this.This doen't mean that you are not correct just waiting for more reply.Thanks and regards.WazzyLieselotteliestal

© 2022 - 2024 — McMap. All rights reserved.