在没有 YSlow 我们的 .htaccess 大师。但我最近建立了一个 Joomla 网站并使用 YSlow 来寻找改进的地方。您在上面询问的 YSlow 的两个区域——“添加过期标头”和“配置实体标签 (ETags)”——我通过域根目录上的 .htaccess 文件进行了处理。
添加过期标头
雅虎说:“网页变得越来越复杂,上面有更多的脚本、样式表、图像和 Flash。第一次访问一个页面可能需要几个 HTTP 请求来加载所有组件。通过使用 Expires 标头,这些组件变成可缓存,可避免后续页面视图中不必要的 HTTP 请求。Expires 标头通常与图像相关联,但它们可以而且应该用于所有页面组件,包括脚本、样式表和 Flash。”
为了解决这个问题,我找到了以下代码块并将其添加到我的 .htaccess 文件中(注意:将 OPENANGLEBRACKET 更改为“<”,将 CLOSEDANGLEBRACKET 更改为“>”):
########## Begin - Expires Headers
#
OPENANGLEBRACKET IfModule mod_expires.c CLOSEDANGLEBRACKET
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/html "access plus 1 day"
ExpiresByType text/plain "access plus 1 week"
ExpiresByType video/x-flv "access plus 1 month"
OPENANGLEBRACKET /IfModule CLOSEDANGLEBRACKET
#
########## End - Joomla! core SEF Section
配置实体标签 (ETags)
雅虎说:“实体标签(ETags)是一种机制网络服务器和浏览器用来确定浏览器缓存中的组件是否与源服务器上的组件匹配。由于 ETags 通常是使用属性构建的,这些属性使它们对特定的服务器托管是唯一的一个站点,当浏览器从一个服务器获取原始组件并随后尝试在另一台服务器上验证该组件时,标签将不匹配。”
我决定通过将其添加到我的 .htaccess 文件中来删除所有给我 A 级的 Etag:
########## Begin - Remove Etags
#
FileETag none
#
########## End - Remove Etags
对我的 .htaccess 文件的这两项更改为我提供了这两个 YSlow 类别的 A 成绩。