Instantly share code, notes, and snippets.

Embed
What would you like to do?
Serving pre-gzipped assets from Apache
AddEncoding gzip .gz
RewriteEngine on
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Konqueror
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)\.css$ $1.css.gz [QSA,L]
RewriteRule ^(.*)\.js$ $1.js.gz [QSA,L]
RewriteRule ^(.*)\.html$ $1.html.gz [QSA,L]
@stepin

This comment has been minimized.

stepin commented Mar 2, 2013

Also you should add:
<Files *.css.gz>
ForceType text/css
</Files>
<Files *.js.gz>
ForceType application/javascript
</Files>
<Files *.html.gz>
ForceType text/html
</Files>

or browsers will not recognize css

@up209d

This comment has been minimized.

up209d commented Oct 30, 2017

RewriteRule ^(.*)\.css$ $1.css.gz [QSA,L]
RewriteRule ^(.*)\.js$ $1.js.gz [QSA,L]
RewriteRule ^(.*)\.html$ $1.html.gz [QSA,L]

This will cause if you don't have html.gz files => 404 Not Found, so instead, we also can combine all rewrite rules at once to:

RewriteRule ^(.*\.(css|js|html|json|svg))$ $1.gz [QSA,L]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment