Say I don’t have mod_deflate compiled into apache, and I don’t feel like recompiling right now. What are the downsides to a manual approach, e.g. something like:
AddEncoding x-gzip .gz
RewriteCond %{HTTP_ACCEPT_ENCODING} gzip
RewriteRule ^/css/styles.css$ /css/styles.css.gz
(Note: I’m aware that the specifics of that RewriteCond need to be tweaked slightly)
Another alternative would be to forward everything to a PHP script, which gzips and caches everything on the fly. On every request, it would compare timestamps with the cached version and return that if it’s newer than the source file. With PHP, you can also overwrite the HTTP Headers, so it is treated properly as if it was GZIPed by Apache itself.
Something like this might do the job for you:
.htaccess
cache.php:
You will need write permissions for apache to generate the cached versions. You can modify the script slightly to store cached files in a different place.
This hasn’t been extensively tested and it might need to be modified slightly for your needs, but the idea is all there and should be enough to get you started.