Help me turning on Caching in .htaccess file

Hello. I need some help with my htaccess files. The problem is that I cant configure Cache Control Headers. I referred to this tutorial but still it doesn’t work.

I’m attaching my file below:

# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
    <IfModule mod_setenvif.c>
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\\.0[678] no-gzip
        BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html
        BrowserMatch \\bMSI[E] !no-gzip !gzip-only-text/html
    </IfModule>
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
<FilesMatch "\\.(css|js)$">
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.1.3"
    </IfModule>
</FilesMatch>
<FilesMatch "\\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$">
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.1.3"
    </IfModule>
</FilesMatch>
<FilesMatch "\\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
    FileETag None
    <IfModule mod_headers.c>
         Header set X-Powered-By "W3 Total Cache/0.9.1.3"
    </IfModule>
</FilesMatch>
# END W3TC Browser Cache

# BEGIN W3TC Page Cache
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} (2\\.0\\ mmp|240x320|alcatel|amoi|asus|au\\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|cellphone|danger|ddipocket|docomo|dopod|elaine/3\\.0|ericsson|eudoraweb|fly|haier|hiptop|hp\\.ipaq|htc|huawei|i\\-mobile|iemobile|j\\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|lg/u990|lge\\ vx|midp|midp\\-2\\.0|mmef20|mmp|mobilephone|mot\\-v|motorola|netfront|newgen|newt|nintendo\\ ds|nintendo\\ wii|nitro|nokia|novarra|o2|openweb|opera\\ mobi|opera\\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\\ portable|portalmmm|ppc|proxinet|psp|pt|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|sharp\\-tq\\-gx10|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\\ os|symbianos|toshiba|treo|ts21i\\-10|up\\.browser|up\\.link|uts|vertu|vodafone|wap|willcome|windows\\ ce|windows\\.ce|winwap|xda|zte) [NC]
    RewriteRule .* - [E=W3TC_UA:_low]
    RewriteCond %{HTTP_USER_AGENT} (acer\\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|cupcake|docomo\\ ht\\-03a|dream|htc\\ hero|htc\\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|lg\\-gw620|liquid\\ build|maemo|mot\\-mb200|mot\\-mb300|nexus\\ one|opera\\ mini|samsung\\-s8000|series60.*webkit|series60/5\\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\\-mobile\\ mytouch\\ 3g|t\\-mobile\\ opal|tattoo|webmate|webos) [NC]
    RewriteRule .* - [E=W3TC_UA:_high]
    RewriteCond %{HTTPS} =on
    RewriteRule .* - [E=W3TC_SSL:_ssl]
    RewriteCond %{SERVER_PORT} =443
    RewriteRule .* - [E=W3TC_SSL:_ssl]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteRule .* - [E=W3TC_ENC:.gzip]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{REQUEST_URI} \\/$
    RewriteCond %{REQUEST_URI} !(\\/wp-admin\\/|\\/xmlrpc.php|\\/wp-(app|cron|login|register|mail)\\.php|wp-.*\\.php|index\\.php) [NC,OR]
    RewriteCond %{REQUEST_URI} (wp-comments-popup\\.php|wp-links-opml\\.php|wp-locations\\.php) [NC]
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\\[a-f0-9\\]\\+|wordpress_logged_in) [NC]
    RewriteCond "/home5/drkunalc/public_html/techsplurge/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
    RewriteRule (.*) "/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://img.techsplurge.com/$1


# 1 YEAR
<FilesMatch "\\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
 
# 1 WEEK
<FilesMatch "\\.(jpg|jpeg|png|gif|swf|js|css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
 
# 3 HOUR
<FilesMatch "\\.(txt|xml)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>
 
# NEVER CACHE
<FilesMatch "\\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

I know it has become much lengthy, its cos of W3 Cache Plugin which I’m using on my Blog.
Any Help please?

Sorry, only time for a standard rant to get you started:

[rant #4][indent]The definition of an idiot is someone who repeatedly does the same thing expecting a different result. Asking Apache to confirm the existence of ANY module with an <IfModule> … </IfModule> wrapper is the same thing in the webmaster world. DON’T BE AN IDIOT! If you don’t know whether a module is enabled, run the test ONCE then REMOVE the wrapper as it is EXTREMELY wasteful of Apache’s resources (and should NEVER be allowed on a shared server).[/indent][/rant 4]

Regards,

DK

Are all the needed modules installed and enabled in Apache? i.e. mod_deflate, mod_headers, mod_rewrite and mod_setenvif?

@dklynn Idiot, they have been written by WP PLugins and not me!

@ScallioXTX Yes they are.

Dev,

If you’re calling yourself a webmaster, please act like one. The reason WP included that code was to protect idiots from taking their site(s) down (including mod_rewrite directives without mod_rewrite being enabled), not to abuse their servers (by repeating the same test ad infinitum). IMHO, you need to actually READ the rant and ask if you REALLY want to abuse your server like that.

Regards,

DK