Hi, I'm faced with a long-standing problem that has recently become a whole lot worse for me: It's the case of the "Vary" header preventing caching in Internet Explorer, which causes no end of problems when it is triggered via mod_negotiation. I use mod_negotiation extensively, not to actually negotiate content in the sense of serving different content to different clients, but rather to provide extension-less URLs. Not only does it make URLs look nicer, it also allows me to change filetypes (e.g. from .gif to .png, or from script.js.cgi to script.js.php) without breaking thousands of inbound links or maintaining a large redirection map. The trouble is this: mod_negotiation always adds a "Vary" header, but the "Vary" header breaks a ton of stuff in Internet Explorer. The biggest problems are (1) extension-less images are not cached, (2) dynamically generated CSS or Javascript files (e.g. style.css.php or functions.js.php) are not cached, and (3) some types of dynamically generated files -- e.g. favicon.ico.php or playlist.m3u.php -- are just totally broken in IE (won't display or pass properly to external programs). These issues are causing huge problems for my site, with IE pulling about 20x more data on each request than it should. It wasn't a big deal when I had a small site with low traffic, but it's spiraling out of control now... I've struggled for countless hours to find solutions to these problems, and I could only come up with two answers on the web, both of which have serious drawbacks: 1. Add "Header unset Vary" to httpd.conf. The problem with this is that it just doesn't work. I don't know why, but I've stuck it in about 100 different places and it doesn't make any difference. That "Vary" header never goes away. 2. Add "SetEnv force-no-vary" to httpd.conf. The problem with this is that it also degrades the connection to HTTP/1.0, which presumably has the side effect of killing HTTP pipelining. On a heavily trafficked site with a lot of small files requested on each page view, this is not a good trade-off. So... The question here is this: Since I'm not using mod_negotiation for any purpose except to hide extensions, can I safely do one of the following: 1. Modify src/main/http_protocol.c so that "force-no-vary" does not also trigger "force-no-response". OR 2. Modify src/modules/standard/mod_negotiation.c by commenting out the entire section that sets the Vary and TCN headers in the first place. I'll probably go with option 2 since it seems like the surefire way to wipe out that "Vary" header with no HTTP/1.1 degradation, but I'd like some input from the Apache gurus about potential pitfalls before I go through with either of these solutions in production. Thanks. --------------------------------------------------------------------- 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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx