mod_expires 没有设置图像(png、jpeg、gif)的有效期

mod_expires 没有设置图像(png、jpeg、gif)的有效期

我在 apache2.conf 中使用以下配置

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/gif "access plus 6 month"
  ExpiresByType image/jpg "access plus 6 month"
  ExpiresByType image/jpeg "access plus 6 month"
  ExpiresByType text/javascript "access plus 6 month"
  ExpiresByType text/css "access plus 6 month"
  ExpiresDefault "access plus 6 month"

</IfModule>

它适用于 css 和 js

curl -I example.com/assests/css/global.css

 Expires: Wed, 14 Jan 2015 09:28:17 GMT

但是当我卷曲任何图像文件时

curl -I example.com/assets/images/banner-16-water-purifier.jpg 

Expires: Sun, 17 Aug 2014 09:29:10 GMT

正如您所见,jped 不起作用。所有图像 (jpeg/png/gif) 也同样如此

答案1

您的配置看起来正确,在 Apache 2.2.22 上的测试也正常。检查是否有任何 mod_expires 指令(ExpiresByType 或 ExpiresDefault)覆盖了 apache.conf。

从图片路径中的任何 .htaccess 文件开始,包括根 Web 文件夹、/assets/ 和 /assets/images/。除非您已在这些文件夹中禁用 .htaccess,否则 .htaccess 中的指令将覆盖其他任何地方设置的配置。

接下来检查 /apache2/sites-available/ 下的虚拟主机文件,然后检查 apache2.conf 包含的任何其他配置文件,例如 /apache2/httpd.conf、/apache2/mods-available/expires.conf(如果存在)以及 /apache2/conf.d/ 下的任何文件。

我在将 mod_expire 指令添加到虚拟主机配置时遇到了类似的问题。我想知道为什么当我将其设置为其他值时,它仍然显示 30 天的有效期,但后来注意到网站上的缓存软件已将 ExpiresByType 和 ExpiresDefault 添加到 .htaccess 文件中。

相关内容