I'm trying to set the expire headers for Rails' auto-versioned resources, like whatever.css?1234567890 . (I don't want to set the expire headers for unversioned resources.) The only method I could find online involved two steps: 1) rewrite all urls that end in 10 digits to load from /public/add_expires_header instead of from /public, where add_expires_header is a symlink that points to /public 2) Add an expiry date to all files from add_expires_header.
Seems like a good idea -- but passenger doesn't seem to recognize the rewrite rule, as indicated by the below curl results.
(Note: a lot of people seemed to think they could accomplish my goal using FilesMatch, but I read elsewhere that FilesMatch can't see the query string.)
#from sites_enabled/sitename in the tags ... RewriteCond %{QUERY_STRING} ^[0-9]{10}$ RewriteRule ^(.*)$ /add_expires_header%{REQUEST_URI} [QSA] ExpiresActive On ExpiresDefault "access plus 1 years" ... ----- #curl indicates that rewrite rule isn't taking effect manu@Blade-Server:~$ curl -I -L "http://x.com/stylesheets/style.css?1249092148" HTTP/1.1 200 OK Date: Tue, 11 Aug 2009 04:07:49 GMT Server: Apache/2.2.11 (Ubuntu) Phusion_Passenger/2.2.4 PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch Last-Modified: Sat, 01 Aug 2009 02:02:28 GMT ETag: "455b-2fbb-4700aedc5f500" Accept-Ranges: bytes Content-Length: 12219 Vary: Accept-Encoding Content-Type: text/css manu@Blade-Server:~$ curl -I -L "http://x.com/add_expires_header/stylesheets/style.css?1249092148" HTTP/1.1 200 OK Date: Tue, 11 Aug 2009 04:07:55 GMT Server: Apache/2.2.11 (Ubuntu) Phusion_Passenger/2.2.4 PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch Last-Modified: Sat, 01 Aug 2009 02:02:28 GMT ETag: "455b-2fbb-4700aedc5f500" Accept-Ranges: bytes Content-Length: 12219 Cache-Control: max-age=31536000 Expires: Wed, 11 Aug 2010 04:07:55 GMT Vary: Accept-Encoding Content-Type: text/css
I've also tried including the rewrite stuff in apache2.conf, httpd.conf, and public/.htacess