Все у вас верно, но нужно поглядеть, какие именно файлы не кэшируются, и добавить их расширения в filesmatch.
Не помню, показывает ли Pagespeed список таких файлов, но тот же 
GTMetrix точно их покажет.
Edit: а добавьте mod_headers, как-то так:
<ifModule mod_headers.c>
    <FilesMatch "\.(html|htm)$">
        Header set Cache-Control "max-age=43200"
    </FilesMatch>
    <FilesMatch "\.(js|css|txt)$">
        Header set Cache-Control "max-age=604800"
    </FilesMatch>
    <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
        Header set Cache-Control "max-age=2592000"
    </FilesMatch>
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
    </FilesMatch>
</IfModule>