On Oct 27, 2011, at 3:35 PM, Stefan Fritsch wrote:

> On Tuesday 25 October 2011, Noah Robin wrote:
>> I ran some tests on this and the following modified version will
>> work:
>> 
>> Header always set Cache-Control max-age=%{CACHE_LIFETIME}e
>> env=CACHE_LIFETIME
>> RewriteRule /example http://www.example.com/
>> [E=CACHE_LIFETIME:604800]
>> 
>> ..however, this still leaves an open question in my mind: How to
>> solve for the more general case where I want Apache to set the
>> cache control header on any 301 it sends, even if the 301 was
>> generated within the application rather than in Apache's
>> configuration. I don't see a way to set an environment variable
>> based on a response attribute (e.g. r->status). Am I missing
>> something or would something need to be written to handle this
>> case?
> 
> 2.3/2.4 supports this:
> 
> Header set Cache-Control max-age=604800 "%{REQUEST_STATUS} == 301"
> 
> or even "%{REQUEST_STATUS} -in { 301 , 302 }". This is a good 
> candidate for an example in the docs.
> 
> I can't think of a way to do this in 2.2.x, though.

In 2.2 you can do this with mod_setenvifplus 
<http://modsetenvifplus.sourceforge.net/>. I do things like this all of the 
time.

Reply via email to