如何开始在我的Opencart网站上使用Etag URL指纹识别?

时间:2016-04-20 14:09:06

标签: .htaccess url caching opencart fingerprinting

我是脚本和编码的新手。我现在已经开始对加快我的网站兴趣了。为此,我想开始利用浏览器缓存。

我已经阅读了几件事情,但我现在正在努力做出正确的决定。

据我所知,有三种选择:

-expires -max年龄 -Etag(使用最大年龄时)

在我看来,前两个不适合电子商务网站(opencart btw)。但据我所知,它比Etag更容易实现。

我在测试环境中获得了过期和最大年龄,但后来我的网页过时的客户端渲染出现了问题。

总而言之,我想去Etag,但我不知道从哪里开始!是否有人(可能还有opencart经验?)谁可以帮我上路?

提前致谢!

此致

乔治

1 个答案:

答案 0 :(得分:1)

ETag的实现并不复杂。以下是.htaccess文件的代码片段,它将为您的图像和其他不经常更改的文件启用ETag:

# ETags Settings (for Cache purposes)
<ifModule mod_headers.c>
 <FilesMatch \.(?i:jpeg|jpg|gif|png|css|js|xml)$>
  FileETag MTime Size
 </FilesMatch> 

 <FilesMatch \.(?i:php)$>
  Header unset ETag
  Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
  Header set Pragma "no-cache"
  FileETag None
 </FilesMatch> 
</ifModule>

# Expires Settings
<IfModule mod_expires.c>
 ExpiresActive On 
 ExpiresDefault "access plus 1 month"

 # 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"
</IfModule>

只是一点背景(虽然我相信你已经知道了)和解释:

ETags比过期更可靠,因为尊重expire指令的浏览器在给定的生命周期内不会更改图像/文件,无论是否有任何更改。但是,ETag可以配置为指示浏览器何时更改图像。

在上面提供的代码 FileETag MTime Size 将有浏览器更新图像,css,js和xml文件(?i:是做一个不区分大小写的匹配)如果有任何更改大小或修改时间。最好的部分:它取代了过期指令!

此外,由于内容的动态特性,上面的代码将禁用php文件的ETag。

我包含了图片的expires指令,因为在我写这篇文章的时候,许多速度检查器和验证器会因为没有它们而对你进行排名,即使设置了ETag也是如此。