Sander Striker wrote:
> [EMAIL PROTECTED] wrote:
> 
>> The problem seems to be, that the proxied backend server that is
>> cached via mod_disk_cache originally
>> delivers HTTP status 301 and the Location
>> http://www.beach-clothing.com/where-to-buy/, but once cached
>> mod_disk_cache delivers HTTP status 200 instead of 301 (but correctly
>> redelivering the Location header).
>> I have not proved this for myself so far, but this seems the problem
>> to me.
> 
> 
> This wouldn't surprise me one bit.  The 2.1 branch has seen quite a bit
> of churn in this
> area.
> 
> Any chance you could give 2.1 a go and see if that works correctly?

Sorry not enough time right now to check this on the living object. But I think 
what
is missing is something like the following (untested) patch (done against 
2.0.54, but
code in trunk is the same at this part):


--- mod_cache.c.orig    2005-04-11 17:47:03.000000000 +0200
+++ mod_cache.c 2005-04-22 23:43:19.000000000 +0200
@@ -220,6 +220,8 @@ static int cache_out_filter(ap_filter_t
     ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r->server,
                  "cache: running CACHE_OUT filter");

+    /* restore status of cached response */
+    r->status = cache->handle->cache_obj->info.status;
     /* recall_headers() was called in cache_select_url() */
     cache->provider->recall_body(cache->handle, r->pool, bb);

I found no place in the code where the saved status code is restored to the 
response,
so I think this could be the right place to do so.
Could somebody crosscheck who is more familar with the code? Sander? Justin?

> 
> Sander

Regards

R�diger




Reply via email to