This is one of those posts I'm creating just so I remember what I did wrong the next time I try to do the same thing (maybe some one else will be spared my frustration via the magic of Google...) To be fair this is all in the Apache docs, but I didn't see it at first... Much frustration.
- global mod_rewrite rules are useless if you are using VirtualHosts. You may be deceived by noting that the rewritelog you specify appears, but disappointed when no messages appear in it, even when loglevel is set to 9. Gradual simplification of RewriteRules in an attempt to generate logging messages (how about: RewriteRule .* http://google.com) proves completely useless and after 10 minutes of frenzied swearing rules are moved into the <VirtualHost> section where they work flawlessly. Lesson: if your Apache directives appear to be having no effect, check if they are inheritable and move them into the appropriate <VirtualHost> section if not.
- mod_proxy is impressive, but Proxying IIS seems to be fraught with problems. Clearly this wouldn't have anything to do with Microsoft's proud interoperability/standards compliance tradition, but just count on using "ProxyBadHeader Ignore" or seeing a lot of sporadic 502 errors. In future versions of Apache, this directive may be renamed "IIS_Sucks DealWithIt"
Update: h/t to Paul Bissex at e-scribe who used the phrase "google magic" in posting exactly this sort of post. I saw it earlier in my feed reader and must have remembered. Anyways - he thinks there ought to be a name for this sort of thing. Just think of this as a battered yellow sticky note hanging off the side of my blog...