过期标题不起作用

时间:2013-06-12 06:23:01

标签: .htaccess caching

我尝试了几种方法来获取图片和其他资源以获得过期日期,但似乎没有一种方法适用于http://www.webpagetest.org/

我还安装了W3插件,工具仍然报告图片没有设置过期标题。

我还在htaccess中包含了以下代码:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
ExpiresByType image/gif A3600
ExpiresByType image/png A3600
ExpiresByType image/jpeg A3600
ExpiresByType text/plain A300
ExpiresByType application/x-shockwave-flash A3600
ExpiresByType video/x-flv A3600
ExpiresByType application/pdf A3600
ExpiresByType text/html A300
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这似乎是一个常见问题,我已经看到很多关于此的问题,但找不到答案。

测试工具或我的服务器上有问题吗?我该如何找到?

3 个答案:

答案 0 :(得分:5)

我遇到了同样的问题。似乎(某些)验证器,如YSlow,在到期日期值为31536000之前不会成功。

这是一个完整的W3 Total Cache htaccess:http://pastebin.com/wegK3jD6 它对我有用,你不妨试一试。

请注意,pastebin不包含WordPress htaccess内容

答案 1 :(得分:2)

对我来说,答案是启用过期模块。

a2enmod expires
systemctl restart apache2

https://www.digitalocean.com/community/questions/how-to-setup-expire-headers-on-apache

中通过 Southparkfan 回答

因此该代码将在apache服务器配置文件中工作

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 month"
    ExpiresByType text/html "access plus 15 days"
    ExpiresByType image/gif "access plus 1 months"
    ExpiresByType image/jpg "access plus 1 months"
    ExpiresByType image/jpeg "access plus 1 months"
    ExpiresByType image/png "access plus 1 months"
    ExpiresByType text/js "access plus 1 months"
    ExpiresByType text/javascript "access plus 1 months"

    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType font/ttf "access plus 1 year"
    ExpiresByType font/otf "access plus 1 year"
    ExpiresByType font/woff "access plus 1 year"
    ExpiresByType font/woff2 "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>

希望有帮助

答案 2 :(得分:0)

我们试图得到错误的结果。我也在寻找解决方案,但是在读取带有这些(过期标头)代码但没有它们的GTMetrix测试结果之后我发现了什么:

  • expire标头代码有效,但仅适用于内部文件。
  • expire标头代码不适用于外部文件(来自其他网站,例如Google Analytics(分析)...)。
  • 测试结果将仅显示外部文件。
  • 如果删除这些代码行,结果将是最糟糕的,并且将导致更多文件没有过期期限。