Update (18-Jan-2011): I uploaded the source for both PathUnwriter.cs and OutgoingStreamFilter.cs in case any one wants it.
As mentioned previously, I wrote an HttpModule to “undo” the path rewriting that GoDaddy seems to do on behalf of a hosted domain. For reference here is the code that does it (PathUnwriter.cs):
/// Clean outgoing path for ISPs that insist on clobbering the incoming path.
/// This module may need to be added *last* so that it's one of the outer-most
/// filters... the filters are created inside-out...
public sealed class PathUnwriter : IHttpModule
//clean-up code here.
Since the path rewriting issue mentioned previously wasn’t a BlogEngine-specific problem, I was reluctant to invest a large amount of effort to solve the path problem if it would only fix BlogEngine. As it turns out, I can pull a similar trick “on the way out” as the one being applied on the way in. Instead of modifying hundreds of instances of path concatenations in the BlogEngine code, I wrote an HttpModule that “unwrites” the path that GoDaddy seems to be sending in. All that the module has to do is attach to the HttpApplication.PreRequestHandlerExecute event and then wrap another layer around HttpResponse.Filter. This give the module a chance to tinker with the values that the page attempts to write to the output stream. BlogEngine.NET itself uses this same method to add compression... which introduces an interesting ordering concern. I’m attempting to “unwrite” text, so my module’s filter needs to be one of the first ones called — so that it doesn’t ... [More]
I’ve (temporarily) given up on re-working the internal links for BlogEngine.NET. It’s not an intractable problem, but would require such pervasive changes that it’s not something I have time for right now. Instead, I’ve decided to focus on cleaning up the theme I’m using. BlogEngine.NET has a really simple theme system, and since the pages are nicely structured, it should be a straighforward matter to develop a new theme that works for me. Why do I need a new theme? For starters, I can’t stand most of the “tiny text means high-style” designs that seem to pervade the net. Okay, then, why not just change the base font size of an existing theme? Another pervasive practice is to write CSS with absolute (pixel) sizes for fonts, and to do so far more often than is necessary. This is very much like the way that most people use word processors: rather than use styles to manage and maintain a particular look -- which makes altering the layout far easier, incidentally -- they manually change th... [More]