在php中添加过期标头无法使其工作

2022-08-31 01:13:36

我已安装 Yslow 附加组件

alt text

当我在Yslow中检查我的应用程序时,我得到添加过期标题,我不知道

alt text

我在SO中搜索了相关问题,谷歌我发现这种方法很合适

<?
    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>

但它仍然向我展示了相同的

因为我是新手,所以我不太了解.htaccess

请帮我提高应用程序性能

提前致谢

瓦兹


答案 1

这只会为您的页面内容设置它,而不是像图像和css文件这样的东西,我注意到在你的屏幕截图上它说42个文件,大概这些是你的图像,css,js等。

请在您的 .htaccess 文件中尝试此操作,请注意,这仅在您在 Apache 中启用并启用时才有效:mod_expiresmod_headers

<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>

答案 2

推荐