Ich muss alte URL (von einer klassischen Asp-Website) zu den neuen umleiten, die mit ASP .NET MVC generiert werden. Beispiel:ASP .NET MVC 5 Legacy-URL
Von localhost/news.asp
-localhost/News
I Summa die folgende Regel:
routes.MapRoute(
"legacyUrl1",
"{controller}.asp/{action}/{id}",
new { controller = "News", action = "RedirectLegacyURL", id = UrlParameter.Optional }
);
//in news controller
public void RedirectLegacyURL(string id)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "news/");
Response.End();
}
Aber die Regeln "verwendet es" ist die folgende:
routes.MapRoute(
"Normal",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Wie ist das möglich? Diese Sache verursacht Problem, wenn ich Legacy-URLs mit Abfrage-String umleiten muss.
FWIW umleiten, es besser ist, dies über IIS zu handhaben, da das, was in einigen Legacy-Anwendung los ist nicht die Domäne Ihrer Anwendung ist. Es sollte sich nur um das kümmern, was es benötigt, nicht um eine Legacy-App. Verwenden Sie das URL-Rewrite-Modul in IIS. –