.NET 4 中 URL 重写的最佳解决方案是什么。我正在寻找一种简单的解决方案来重写 URL,例如
将“myurl.com/ApplicationName/Kohls”转换为“myurl.com/ApplicationName/index.html?store=Kohls”,这样我就可以通过查询字符串访问变量“Kohls”。
我目前正在使用 Global.asax,它一直在为上述情况工作 - 但在用户输入 myurl.com/Application 的情况下,我遇到了麻烦,在 Application 之后没有“/”或任何内容。
我目前有这个:
protected void Application_BeginRequest(object sender, EventArgs e)
{
String CurrentURLPath = Request.Path.ToUpper();
Match nothingAfterRoot = Regex.Match(CurrentURLPath, @"/ApplicationName(/)?$", RegexOptions.IgnoreCase);
if (nothingAfterRoot.Success)
{
HttpContext myContext = HttpContext.Current;
myContext.RewritePath("/ApplicationName/Default.aspx?store=ABC");
}
else
{
Match match = Regex.Match(CurrentURLPath, @"/ApplicationName(/)?(\w)*$", RegexOptions.IgnoreCase);
if (match.Success)
{
CurrentURLPath = CurrentURLPath.Trim('/');
String store= CurrentURLPath.Split("ApplicationName/".ToCharArray())[1];
HttpContext myContext = HttpContext.Current;
myContext.RewritePath(String.Format("/ApplicationName/Default.aspx?store={0}", store));
}
}
}