添加到收藏    打印

自定义GSLB缓存类型和时间

特别提示:如果更新静态资源,可以在浏览器访问中,按Ctrl+F5强制刷新。

关闭缓存会影响网站访问速度(Google优化提示中,缓存属于高级别的设置),除非实时更新的动态页面,请在关闭缓存前慎重考虑。如果您的网站尚在调试阶段,可以考虑使用临时域名,或者在本地设置好后部署到服务器。

通过.htaccess定义

apache用户,定义GSLB和用户缓存,可以通过以下模块或指令:

Expires

Headers

FilesMatch

现在以禁用缓存为例,.htaccess写法如下:

直接通过Expires

Expires模块通过 mime类型来定义缓存过期时间。

例如,禁用所有html页面的缓存,包括静态html和脚本实时生成的响应页面,.htaccess写法如下:

ExpiresActive on
ExpiresByType text/html A0

通过FilesMatch和Expires组合

由于mime类型比较繁琐,可以通过FilesMatch来根据文件名来定义缓存时间,比如要禁用html和php页面缓存,.htaccess写法如下:

<FilesMatch \.(html|php)$>
  ExpiresActive on
  ExpiresDefault A0
</FilesMatch>

通过FilesMatch和Headers组合

Header模块可以定义更多的响应,相应的.htaccess写法如下:

<FilesMatch \.(html|php)$>
  Header set Cache-Control "no-cache, must-revalidate, proxy-revalidate"
</FilesMatch>

实例

禁止伪静态的html被缓存,在.htaccess里面,Rewrite之后加入(此写法也可以避免Discuz等程序错误的页面被缓存):

<FilesMatch \.php$>
  Header set Cache-Control "no-cache, must-revalidate, proxy-revalidate"
</FilesMatch>


设置图片缓存时长一周

<FilesMatch \.(jpg|jpeg|png|gif)$>
  ExpiresActive on
  ExpiresDefault A604800
</FilesMatch>

设置javascript和css缓存时长一天

<FilesMatch \.(js|css)$>
  ExpiresActive on
  ExpiresDefault A86400
</FilesMatch>

nginx用户

通过expire指令来控制缓存:

location ~ \.php$ {
expires -1; add_header Cache-Control "no-cache, must-revalidate, proxy-revalidate"; }


此答案有用么?

建议阅读