Какое лучшее решение для перезаписи URL-адресов в .NET 4. Я ищу простое решение для перезаписи URL-адресов, таких как
«myurl.com/ApplicationName/Kohls» на что-то вроде «myurl.com/ApplicationName/index.html?store=Kohls», чтобы я мог получить доступ к var «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));
}
}
}