Doing a redirect in Apache is easy (mod_alias):
RedirectMatch ^.*$ http://portal.example.com/
Setting cache headers is equally easy:
Header set Cache-Control max-age=0 Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
(I don't want this cached)
But! It seems you can't combine the two. This configuration results in the redirect being sent, but not the the headers:
<VirtualHost *:80> ServerName __default__ Header set Cache-Control max-age=0 Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT" RedirectMatch ^.*$ http://portal.example.com/ </VirtualHost>
Example of what actually happens:
jb@apto % telnet 192.168.0.1 80 Trying 192.168.0.1... Connected to redirector.example.com. Escape character is '^]'. GET / HTTP/1.1 Host: foo HTTP/1.1 302 Found Date: Sat, 21 Aug 2010 09:36:38 GMT Server: Apache/2.2.9 (Debian) Phusion_Passenger/2.2.9 Location: http://portal.example.com/ Vary: Accept-Encoding Content-Length: 316 Content-Type: text/html; charset=iso-8859-1 (etc)
Any ideas for how to return a redirect with cache headers?