ZIP File Corruption using Apache’s example for mod_deflate

Upon using the example show here I ran into an issue with ZIP files being downloaded showing up as corrupt, specifically from IE.

<Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI (?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

Line 17 specifically says to use compression however there is no exclusion for ZIP files. We don't want to compress the already compressed file so we need to add this line below line 20:

# Don't compress zip files
SetEnvIfNoCase Request_URI (?:zip)$ no-gzip dont-vary

This will then exclude ZIP file from compression.

Filed under: Linux No Comments