【问题标题】:Expires in 1 month header on all files except .php files除 .php 文件外的所有文件的标头在 1 个月内到期
【发布时间】:2012-07-21 09:56:31
【问题描述】:

为了加快我的网站速度,我已经阅读了有关 Expires 标头、如何在 Apache 中实现它以及如何仅对某些文件类型执行此操作的信息。但是,我想为 .php 文件(网页)以外的所有文件设置一个月的有效期。

那么我该如何使用.htaccess 来做到这一点?我有一个 PHP 脚本,它使用filemtime 在编辑 CSS、JS 文件时更改它们的文件名,以便重新下载它们(例如,如果文件在 Unix 时间在xxxxxxx 更改,它将文件名更改为/resource.css?recache=xxxxxxxx 请求时)。所以这被照顾了。由于图像等不经常更改,我希望将它们全部缓存一个月。

另外,Expires 标头的浏览器支持是什么?

【问题讨论】:

  • 我认为您不必担心 PHP 文件是否过期,因为(除非您有 Apache PHP 缓存插件)PHP 将始终动态呈现。
  • 好的,我是否只在所有文件上设置Expires?怎么做最好?
  • 我不是缓存专家,但人们通常在想要缓存时使用ExpiresCache-Control 标头,因为所有现代浏览器都是默认的缓存资源。但是,是的,阿隆回答中的mod_expires 应该这样做。

标签: php apache http caching expires-header


【解决方案1】:

在您的 Apache 配置文件中使用 mod_expires。例如:

# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0

# Set up caching on media files for 1 month
<filesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|gif|jpg|jpeg|png|swf)$">
ExpiresDefault A2592000
Header append Cache-Control "public"
</filesMatch>

您可以阅读更多here

【讨论】:

  • 您还可以将ExpiresDefault 设置为更具可读性的字符串。 ExpiresDefault "access plus 365 days"
猜你喜欢
  • 1970-01-01
  • 2013-11-30
  • 2016-04-29
  • 2022-10-15
  • 2011-03-06
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多