On Thu, 18 Dec 2003, Gabriel Wicke wrote: > On the xhtml content i set the Cache-control header as > must-revalidate,max-age=0,s-maxage=36000. > The browser will always check back for changes, squid will get a purge > request if something changes. > > This breaks as soon as some transparent proxy gets in the way that picks > up the s-maxage header.
Does not need to be a transparent proxy, just any proxy supporting s-maxage will do this. The above headers says * Shared caches (i.e. proxies) may cache the object for 36000 seconds * All other caches (i.e. browsers) must check with their source (i.e. the proxy in proxied environment) if the source knows about a newer copy. > So i'd like to strip any s-maxage headers or set them to 0 when passing > through squid. I took a look at header_access and header_replace: > > header_access Cache-control deny all > header_replace Cache-control Must-revalidate,max-age=0,s-maxage=0 > > This makes the browser check back for everything on every request > (stylesheets, pics...), very slow. > > What i'd like to achieve is a conditional replace only if s-maxage was > included in the original header. Is this possible with some acl matching > magic? If you know which URLs you need to do this on then just make a urlpath_regex pattern matching which URLs this need to be done on (or not done on) and then use this in header_access when determining if the header should be replaced. Regards Henrik