You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Gordon Mohr <go...@archive.org> on 2008/09/29 00:38:24 UTC

[users@httpd] mod_expires setting unwanted Expires on 5XX status codes

Using mod_expires in Apache 2.2.X, I want everything *except* 5XX status 
code responses (like 503, service unavailable/busy) to have an Expires 
header added.

I don't see a switch to limit mod_expires by response code.

It looks like a 'Header unset' conditional on the existence of an 
environment variable previously set based on response code could work; 
is there an environment variable set to the about-to-be-returned status 
code, at the time of late mod_headers action?

Thanks for any ideas,

- Gordon @ IA

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_expires setting unwanted Expires on 5XX status codes

Posted by Gordon Mohr <go...@archive.org>.
Nick Kew wrote:
> 
> On 28 Sep 2008, at 23:38, Gordon Mohr wrote:
> 
>> Using mod_expires in Apache 2.2.X, I want everything *except* 5XX 
>> status code responses (like 503, service unavailable/busy) to have an 
>> Expires header added.
> 
> That doesn't make sense.  For many response codes, it's just Not 
> Applicable.

For our application, the exceptions to long cacheability are rare -- 
only (usually-transient) server errors (5XXs). Even 3XX and 4XX 
responses should be cached a day, or longer.

>> I don't see a switch to limit mod_expires by response code.
>>
>> It looks like a 'Header unset' conditional on the existence of an 
>> environment variable previously set based on response code could work; 
>> is there an environment variable set to the about-to-be-returned 
>> status code, at the time of late mod_headers action?
> 
> You'd have to set the env var after the response was known, too.  That can
> only happen if the response is known early, and that only happens when
> the response is itself generated by server configuration (e.g. a redirect,
> or access denied), or if the response is static and local.
> 
> The general-purpose solution is an ErrorDocument.

How can the ErrorDocument prevent mod_expires from setting the default 
Expires value on its 503-contents? Or are ErrorDocuments just exempt 
from mod_expires action?

- Gordon @ IA

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_expires setting unwanted Expires on 5XX status codes

Posted by Nick Kew <ni...@webthing.com>.
On 28 Sep 2008, at 23:38, Gordon Mohr wrote:

> Using mod_expires in Apache 2.2.X, I want everything *except* 5XX  
> status code responses (like 503, service unavailable/busy) to have  
> an Expires header added.

That doesn't make sense.  For many response codes, it's just Not  
Applicable.

> I don't see a switch to limit mod_expires by response code.
>
> It looks like a 'Header unset' conditional on the existence of an  
> environment variable previously set based on response code could  
> work; is there an environment variable set to the about-to-be- 
> returned status code, at the time of late mod_headers action?

You'd have to set the env var after the response was known, too.   
That can
only happen if the response is known early, and that only happens when
the response is itself generated by server configuration (e.g. a  
redirect,
or access denied), or if the response is static and local.

The general-purpose solution is an ErrorDocument.

-- 
Nick Kew

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org