It looks like your FilesMatch rules are kicking in. but the default Cache-Control header you are sending includes max-age = 0. At least for testing it might be worth setting an expires value in the match blocks for js/css and images.