ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
## EXPIRES CACHING ##
Cache control headers. Tells browser how to handle file caching
Header set Cache-Control "public"
Header set Cache-Control "public"
Header set Cache-Control "private"
Header set Cache-Control "private, must-revalidate"
Header set Last-Modified "Mon, 31 Aug 2000 00:00:00 GMT"
I see there are two types of mechanisms you have there: 1. GZIP compression and 2. Cache Headers. You should keep them.
Compression
Although Cloudflare will GZIP all files (that can be compressed) to the visitor for you, Cloudflare still needs to pull these files from your origin server. Therefore, files should also be served with compression from the origin server, so they are passed as fast as possible to Cloudflare.
Cache headers
If you haven’t specified cache headers from your server, Cloudflare might add a default “4 hours”. Most cacheable files (js, css, images) should have an expire time set to far into the future (1 year +) because they don’t generally change. If you set cache headers from your own server, they prompt Cloudflare to respect existing cache headers. Having cache headers set far into the future, will allow visitors browsers to effectively cache files that don’t change, and will also instruct the Cloudflare CDN to cache files longer.
On a side note, the rules you have specified are often set by default on servers (without having to use .htaccess). If they are, then you could remove the rules from .htacess.