2014-02-06 32 views
3

我正试图优化我的一个WordPress网站 - Type & Music根据我已经从GTmetrix获得的报告。我被建议做的一件事是添加expires头文件并利用浏览器缓存。我可能是错的,但我认为这些都是一样的东西?添加过期标题和.htaccess

无论如何,我一直在寻找在线教程,如How to Add Far Future Expires Headers to Your WordPress Site以及如何通过托马斯格里芬媒体的.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 ## 

因为我已经安装了快速缓存插件太多,但就我所知并没有真正的冲突,尤其是因为在设置我的htaccess文件并未首先注册。

任何帮助将不胜感激,因为我自己找不到任何帮助。

回答

3

下面是你需要添加到.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>

1

的问题与您的LAMP服务器上丢失的Apache2模块做(mod_headers中专门和指定mod_expires)。如果您可以通过SSH得到,去那里访问根通过以下命令:

sudo -i 

然后在下面,以使国防部头贴:

sudo a2enmod headers 

然后,您将看到这样一条消息:为了激活新的配置,你需要运行:服务的Apache2重启

粘贴在下面的命令来重新启动:

service apache2 restart 

接下来,粘贴下面的命令,以使内容缓存:再次

sudo a2enmod expires 

重新启动你看到下面有什么,你会很好:

service apache2 restart 

就是这样。现在托管在您服务器上的所有东西都应该正确缓存。请注意,如果您使用的是CDN,则需要去那里指定一个远期的缓存日期。如果您使用的是MaxCDN,则只需导航到Zones> Pull Zones> Settings> Cache Settings,然后指定12个月。