# disables the access to files that should not be public
<FilesMatch "\.(txt|xml|log)$">   
  Order deny,allow
  Deny from all
</FilesMatch>

<FilesMatch "\.(html|htm)$">
AddDefaultCharset UTF-8
</FilesMatch>

# For Apache/2.0, enable the modules in your httpd.conf file like this.
# LoadModule expires_module modules/mod_expires.so
# LoadModule headers_module modules/mod_headers.so
# LoadModule deflate_module modules/mod_deflate.so
# LoadModule gzip_module modules/mod_gzip.so

# Deflate Compression by MimeType
<IfModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE text/javascript
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/javascript
</IfModule>

# Deflate Compression by file extension
<IfModule mod_deflate.c>
 <FilesMatch "\.(js|css|txt|html|htm|swf|xml|php|ico)$">
   SetOutputFilter DEFLATE
 </FilesMatch>
</IfModule>

# gzip Compression if availiable
<IfModule mod_gzip.c>
 mod_gzip_on       Yes
 mod_gzip_dechunk  Yes
 mod_gzip_item_include mime      ^text/.*
 mod_gzip_item_include mime      ^text/html$
 mod_gzip_item_include mime      ^application/x-javascript.*
 mod_gzip_item_include file      \.(js|css|txt|html|htm|swf|xml|php|ico)$
 mod_gzip_item_exclude mime      ^image/.*
 mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# global caching
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType text/css "access plus 1 month"
 ExpiresByType text/javascript "access plus 1 month"
 ExpiresByType text/html "access plus 1 month"
 ExpiresByType application/javascript "access plus 1 month"
 ExpiresByType application/x-javascript "access plus 1 month"
 ExpiresByType application/xhtml-xml "access plus 600 seconds"
 ExpiresByType image/gif "access plus 1 month"
 ExpiresByType image/jpeg "access plus 1 month"
 ExpiresByType image/x-icon "access plus 1 month"
</IfModule>
<ifmodule mod_headers.c>
 <filesmatch "\\.(js|css|ico|jpe?g|gif|swf|png)$">
  Header set Cache-Control "max-age=2592000, public"
 </filesmatch>
  <filesmatch "\\.(xml)$">
  Header set Cache-Control "max-age=0, no-cache"
 </filesmatch>
# counter.png in the cache folder is only cached 60 min in the browser cache!
  <filesmatch "(counter\.png)$">
    Header set Cache-Control "max-age=3600, private"
  </filesmatch>
</ifmodule>

# Turn ETags Off if you use a cluster of servers to handle requests
# see: http://developer.yahoo.com/performance/rules.html#etags
# <ifmodule mod_headers.c>
# Header unset ETag
# Header unset Last-Modified
# </ifmodule>
# FileETag None