Спасибо всем за мысли. С предоставленной информацией я нашел решение, которое мне нужно:
В Global.asax (или через HttpModule) прослушайте событие BeginRequest и примените туда путь Context.Rewrite:
void Application_BeginRequest(object sender, EventArgs e)
{
string fullOrigionalpath = Request.Url.ToString();
if (fullOrigionalpath.ToLower().Contains("/Games".ToLower()))
{
Context.RewritePath("Default.aspx?id=Games");
}
}
И затем в методе OnPreInit страницы, которая будет обрабатывать эти запросы, необходимо снова применить путь перезаписи, чтобы PostBacks работал должным образом:
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
if (Request.QueryString["id"] == null)
return;
if (Request.QueryString["id"].ToLower().Equals("games"))
Context.RewritePath("Games", "", "id=Games");
}
Ключ, который делает эту работу лучше, чем многие модули перезаписи URL, с которыми я сталкивался, заключается в том, что пути могут быть динамическими. То есть созданные URL-адреса могут управляться данными.