【发布时间】:2010-09-02 10:05:31
【问题描述】:
我知道我可以使用 mod_expires 添加过期标头。但是,如果 Apache 服务器没有安装 mod_expires 并且我不想通过像 PHP 这样的脚本语言来路由对文件的访问,我该怎么办?
【问题讨论】:
标签: apache .htaccess mod-expires
我知道我可以使用 mod_expires 添加过期标头。但是,如果 Apache 服务器没有安装 mod_expires 并且我不想通过像 PHP 这样的脚本语言来路由对文件的访问,我该怎么办?
【问题讨论】:
标签: apache .htaccess mod-expires
您可以使用mod_header 手动设置标题字段:
Header set Expires "..."
但由于Expires 需要absolute time,请使用Cache-Control 的max-age 参数作为相对于访问时间的时间:
Header merge Cache-Control max-age=3600
【讨论】:
这应该告诉浏览器在后续访问时刷新页面。过期日期必须是过去...您可以使用 PHP 设置日期以使其“只是”过去,或者将其保留为您找到此答案的日期!!!
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 2 Sep 2010 05:00:00 GMT");
更新:抱歉 - 我错过了关于通过 PHP 路由文件的句子中的“不要”!您还可以使用这些 HTML 元标记:
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="Thu, 2 Sep 2010 05:00:00 GMT">
【讨论】:
如果你有静态的 Expires 标头,下面会在你的 js 和 css 文件中添加一个 Expires 标头:
<FilesMatch "\.(js|css)$">
Header set Expires "Fri, 01 Jan 2010 00:00:00 GMT"
</FilesMatch>
【讨论】: