我正在尝试根据我从GTmetrix获得的报告来优化我的WordPress网站Type & Music。我建议做的事情之一是添加过期标题并利用浏览器缓存。我可能错了,但我认为这些都是一回事?
无论如何,我一直在寻找在线教程,如How to Add Far Future Expires Headers to Your WordPress Site以及如何通过Thomas Griffen Media的.htaccess在WordPress中利用浏览器缓存,这些似乎只是一个复制和粘贴的案例(我我知道这些设置特定于每个站点,具体取决于您更新/编辑某些内容和文件的频率,但是当我重新测试该站点时,这些设置似乎永远不会注册。
以下是我的.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
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 month”
ExpiresByType image/jpeg "access 1 month”
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 week”
ExpiresByType text/css "access 1 week”
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##
我已经安装了Quick Cache插件,但据我所知,并没有真正发生冲突,特别是因为我的htaccess文件中的设置没有首先注册。
任何帮助都会非常感激,因为我自己找不到任何帮助。
答案 0 :(得分:4)
这是您需要添加到.htaccess文件中以解决此问题的方法。这是大多数类型文件的完整脚本。希望这会有所帮助。
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
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"
ExpiresByType text/html "access plus 3 days"
ExpiresByType text/xml "access plus 1 seconds"
ExpiresByType text/plain "access plus 1 seconds"
ExpiresByType application/xml "access plus 1 seconds"
ExpiresByType application/rss+xml "access plus 1 seconds"
ExpiresByType application/json "access plus 1 seconds"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/x-ico "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType application/pdf "access plus 1 month"
<IfModule mod_headers.c>
Header unset ETag
Header unset Pragma
Header unset Last-Modified
Header append Cache-Control "public, no-transform, must-revalidate"
Header set Last-modified "Tue, 1 Oct 2014 10:10:10 GMT"
</IfModule>
</IfModule>
&#13;
答案 1 :(得分:1)
问题与LAMP服务器上缺少的Apache2模块有关(特别是mod_headers和mod_expires)。如果您可以通过SSH进入,请通过以下命令访问root:
sudo -i
然后粘贴以下内容以启用Mod标头:
sudo a2enmod headers
然后您将看到以下消息:要激活新配置,您需要运行:service apache2 restart
粘贴在下面的命令中重启:
service apache2 restart
接下来,粘贴以下命令以启用内容缓存:
sudo a2enmod expires
再次使用您在下面看到的内容重新启动,您将会很好:
service apache2 restart
那就是它。现在,您服务器上托管的所有内容都应正确缓存。请注意,如果您正在使用CDN,则需要去那里并指定远期的缓存日期。如果您正在使用MaxCDN,则只需导航到区域&gt;拉区&gt;设置&gt;缓存设置,然后规定12个月。