WordPress .htaccess mod_expires

WordPress .htaccess mod_expires

快速提问。我尝试在启用 SSL 的 Apache 上为 wordpress 网站启用浏览器缓存。我安装了 mod_expires sudo a2enmod expires(我已验证它已启用并列在 /etc/apache2/mods-enabled 上)我按照以下建议编辑了 .htaccess 文件GTMetrix

我的 .htaccess(我通过取消注释重写规则并查看页面离线来验证它是否可以被访问)如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Browser Caching Start #
<IfModule mod_expires.c>
        # Enable expirations
        ExpiresActive On
        # Default directive
        ExpiresDefault "access plus 1 month"
        # My favicon
        ExpiresByType image/x-icon "access plus 1 year"
        # Images
        ExpiresByType image/gif "access plus 1 month"
        ExpiresByType image/png "access plus 1 month"
        ExpiresByType image/jpg "access plus 1 month"
        ExpiresByType image/jpeg "access plus 1 month"
        # CSS
        ExpiresByType text/css "access plus 1 month"
        # Javascript
        ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# Browser Caching End #

重新启动 apache 并在 Google 和 GTMetrix 上测试。我不断收到“利用浏览器缓存”的消息,显示图像将在 4 小时后过期。

https.../image.png(4 小时)

关于如何调试这个问题有什么建议吗,或者您发现我做错了什么?

以下是其中一个图像的 http 响应标头:

Content-Length: 13937
Connection: keep-alive
Set-Cookie: __cfduid=dc6febbc08cc78186b2444352064d20611481224874; expires=Fri, 08-Dec-17 19:21:14 GMT; path=/; domain=.mydomain.com; HttpOnly
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Last-Modified: Wed, 07 Dec 2016 05:20:33 GMT
ETag: "3671-5430aae243b0e"
Cache-Control: public, max-age=2592000
Expires: Sat, 07 Jan 2017 19:21:14 GMT
X-Content-Type-Options: nosniff
CF-Cache-Status: MISS
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 30e294493e2f3fd7-YUL

我看到“到期日期:1 月 7 日星期六”,所以应该是一个月,但 Google 一直写着 4 小时?这是怎么回事?:)

相关内容