我正在使用Apache服务器上的php。由于它是共享服务器,我无法在.htaccess文件中设置过期标头,因为Web主机不会在apache构建中安装mod_expires模块。
我一直使用
ExpiresActive On
并在.htaccess
文件中为图像、js、xml和文本文件设置默认缓存过期时间。
那么我的其他选择是什么?
谢谢。<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>
Header set Cache-Control "max-age=seconds"
。因为你不应该将过期日期设置超过一天。max-age
更加灵活,不需要定期更新。秒数从访问时间开始计算。 - Daniel有人可能提出一个 Apache 特定的解决方案,可以在没有模块的情况下工作。但作为最后的办法,如果没有其他方法,你可以通过 PHP 路由所有流量,并在那里输出头文件。但这意味着将每个资源都发送到 PHP 解释器,并且非常耗费资源。
mod_expires
似乎很奇怪,因为它自从很久以前就已经随 Apache 捆绑安装了。我肯定会更换主机!!!即使是最便宜的共享 Web 托管服务现在也都安装了mod_expires
。 - Marco Demaio