2009-12-27 75 views
3

我使用的是Apache服务器上的PHP。我无法设置过期头,在.htaccess中,我的工作在服务器上,因为它是一个共享的服务器和他们(虚拟主机)将不会安装在Apache构建的指定mod_expires模块。 我一直使用的ExpiresActive On并设置.htaccess文件中的图像,jsxml和文本文件的默认缓存过期。用于设置过期标题的mod_expires的替代方法?

我有什么其他选择?

谢谢。

+0

这听起来有点奇怪,因为你的主机长时间以来一直和Apache捆绑在一起,所以没有安装'mod_expires'。我肯定会改变主机!现在即使是最便宜的共享网络托管服务也安装了'mod_expires'。 – 2012-04-05 20:11:20

回答

1

有人会拿出,没有模块工作在Apache具体的解决方案,但作为最后的手段,如果没有别的办法,你可以借道PHP和输出头有你的所有流量。但这意味着通过PHP解释器发送所有资源,并且成本非常高昂。

+0

有人做过。见[这个答案](http://webmasters.stackexchange.com/a/3271/9823)。 – Aeyoun 2013-05-03 16:14:04

4

你可以用的.htaccess和不指定mod_expires做到这一点。

<IfModule mod_headers.c> 
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT" 
    Header set Cache-Control "public" 
    </FilesMatch> 
</IfModule> 
+1

或者,使用'Header set Cache-Control“max-age = seconds”'。由于您不应将到期日期设置为一天以上。 'max-age'更灵活,不需要定期更新。秒的访问时间。 – Aeyoun 2013-05-03 19:43:24

+0

这应该是“一年”,对不起。源代码是W3C的缓存最佳实践。 – Aeyoun 2013-05-03 20:29:03

相关问题