Inherit IHttpModule, переопределить Application_BeginRequest, выполнить логику перезаписи и перезаписать URL с помощью:
private void Application_BeginRequest(Object source, EventArgs e) {
((HttpApplication)source).Context.RewritePath(...);
}
Затем зарегистрируйте его в web.config с помощью:
<httpModules>
<add name="UrlRewriteHandler" type="namespace.UrlRewriteHandler,project"/>
</httpModules>
Надеюсь, это поможет.