Thank you Cathal! I must say, we're wandering in the dark here. I don't know how to add that module to a page, as its install instructions say. Does this mean the UI it offers, for configuring the URL rewriter, needs adding to an Admin page as a module, rather like a block of content is added to a user facing page? (I haven't done that either, we've been delivered a DNN site by a third party and are learning as we go). We'll try this soon.
We have actually gone to extremes, and set up three independent sites within our IIS installation. We created a single IIS site on port 80 with nothing but a few rewrite rules, which forward some requests to our coreproduct site, and the rest to a DNN site. This has introduced a long series of drawbacks, because the DNN site frequently writes its HTTPAlias or PortalAlias into HTML it outputs, which is dnn.localhost in our case, so the rewriting site has to have some (probably horribly inefficient) outbound rewrite rules to alter dnn.localhost to our main domain name, so the HTML served to the browser contains the proper names.
This is a particular pain with editing pages, where the POST when saving an edit makes a POST to e.g.
http://oursite.com/Solutions/ctl/Edit/mid/442
and responds with something like:
1|#||4|38|pageRedirect||http%3a%2f%2fdnn.localhost%2fSolutions|
To make the redirect done by the browser work, we must change dnn.localhost to our actual public domain name, but the magic number 38 in that response matches the number of characters in "http%3a%2f%2fdnn.localhost%2fSolutions", so using a rewrite rule to alter the domain name (which works fine) causes the javascript that parses the response to fail. Our rewrite rule cannot do the extra calculation of counting string length and replacing the number 38, which is going to change depending on the URI of the page being edited. This is extra annoying because the damn thing is separated by pipe characters, there's no need to encode the length of the string in the response.
Our solution to this is to make the internal domain name the same number of characters as the public domain name, i.e. something like 'foobar.arse' instead of 'oursite.com', and use an outbound rewrite rule to rewrite the response, leaving the magic number alone because it still represents the right number of characters.
All in all this rewrite module and its apparant lack of configuration documentation has been a huge pain.
Nick