2012-10-23 59 views
18

我想为我的网站创建一个htaccess文件,并且pageSpeed见解显示有图像和一个css文件没有到期。htaccess利用浏览器缓存的图像和css

我不确定从哪里开始或如何做到这一点,我从线上教程的代码,并想知道这是否足以工作。

<IfModule mod_expires.c> 
ExpiresActive On 
############################################ 
## Add default Expires header 
## http://developer.yahoo.com/performance/rules.html#expires 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
ExpiresDefault "access plus 1 year" 
</FilesMatch> 
</IfModule> 

或者这个代码做我需要做的事吗?

感谢

回答

37

尝试像

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 seconds" 
    ExpiresByType text/html "access plus 1 seconds" 
    ExpiresByType image/x-icon "access plus 2592000 seconds" 
    ExpiresByType image/gif "access plus 2592000 seconds" 
    ExpiresByType image/jpeg "access plus 2592000 seconds" 
    ExpiresByType image/png "access plus 2592000 seconds" 
    ExpiresByType text/css "access plus 604800 seconds" 
    ExpiresByType text/javascript "access plus 86400 seconds" 
    ExpiresByType application/x-javascript "access plus 86400 seconds" 
</IfModule> 

<FilesMatch "\.(?i:gif|jpe?g|png|ico|css|js|swf)$"> 

    <IfModule mod_headers.c> 
    Header set Cache-Control "max-age=172800, public, must-revalidate" 
    </IfModule> 

</FilesMatch> 
+0

谢谢,我会的标签之间添加此作为我尝试这样做,它仍然显示为过期未设置 – Sam

+1

不添加这个在''你可以添加这个之前或之后这个 –

+0

我已经在上面给出的代码中添加了'ExpiresActive On到ExpiresByType application/x-javascript“访问加86400秒''这就是我在.htaccess文件中的所有内容,并且它不工作,请你帮忙。谢谢 – Sam

23

我知道这是一个迟来的答案,但上面并没有为我工作。相反,我使用了以下内容:上述

<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif|html|htm|xml|txt|xsl)$"> 
Header set Cache-Control "max-age=31536050" 
</FilesMatch> 
+1

这对我和谷歌Pagespeed认识到这是一个很好的因素! – gleenk

+0

也为我工作,thx。最大年龄有多长? – Marko

+0

@Marko这是一年,以秒为单位。 –

0

关于马修·约翰逊“的答案,因为,是它没有为我在我的Laravel5.2网站的工作,但我说‘PHP’到列表中,它的工作!谢谢!马修·约翰逊

<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif|html|htm|xml|php|txt|xsl)$"> 
Header set Cache-Control "max-age=31536050" 
</FilesMatch> 
6

上面的回答为我工作,但我也想在.htaccess添加其他文件扩展名。下面的代码给我一个很好的解决方案。

完全.htaccess代码通过在谷歌PageSpeed Insight:

  1. 启用压缩
  2. 杠杆浏览器缓存
# Enable Compression 
<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE application/rss+xml 
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
    AddOutputFilterByType DEFLATE application/x-font 
    AddOutputFilterByType DEFLATE application/x-font-opentype 
    AddOutputFilterByType DEFLATE application/x-font-otf 
    AddOutputFilterByType DEFLATE application/x-font-truetype 
    AddOutputFilterByType DEFLATE application/x-font-ttf 
    AddOutputFilterByType DEFLATE application/x-javascript 
    AddOutputFilterByType DEFLATE application/xhtml+xml 
    AddOutputFilterByType DEFLATE application/xml 
    AddOutputFilterByType DEFLATE font/opentype 
    AddOutputFilterByType DEFLATE font/otf 
    AddOutputFilterByType DEFLATE font/ttf 
    AddOutputFilterByType DEFLATE image/svg+xml 
    AddOutputFilterByType DEFLATE image/x-icon 
    AddOutputFilterByType DEFLATE text/css 
    AddOutputFilterByType DEFLATE text/html 
    AddOutputFilterByType DEFLATE text/javascript 
    AddOutputFilterByType DEFLATE text/plain 
</IfModule> 
<IfModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</IfModule> 

# Leverage Browser Caching 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpg "access 1 year" 
    ExpiresByType image/jpeg "access 1 year" 
    ExpiresByType image/gif "access 1 year" 
    ExpiresByType image/png "access 1 year" 
    ExpiresByType text/css "access 1 month" 
    ExpiresByType text/html "access 1 month" 
    ExpiresByType application/pdf "access 1 month" 
    ExpiresByType text/x-javascript "access 1 month" 
    ExpiresByType application/x-shockwave-flash "access 1 month" 
    ExpiresByType image/x-icon "access 1 year" 
    ExpiresDefault "access 1 month" 
</IfModule> 
<IfModule mod_headers.c> 
    <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$"> 
    Header set Cache-Control "max-age=2678400, public" 
    </filesmatch> 
    <filesmatch "\.(html|htm)$"> 
    Header set Cache-Control "max-age=7200, private, must-revalidate" 
    </filesmatch> 
    <filesmatch "\.(pdf)$"> 
    Header set Cache-Control "max-age=86400, public" 
    </filesmatch> 
    <filesmatch "\.(js)$"> 
    Header set Cache-Control "max-age=2678400, private" 
    </filesmatch> 
</IfModule> 

也有一些配置的各种web服务器看到here
希望这将有助于获得100/100的分数。