我必須將舊網址(從傳統的Asp網站)重定向到使用ASP .NET MVC生成的新網址。例如:ASP .NET MVC 5傳統網址
從localhost/news.asp
到localhost/News
我加數以下規則:
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();
}
但規則 「它用」 如下:
routes.MapRoute(
"Normal",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
這怎麼可能?當我必須使用查詢字符串重定向傳統網址時,此事會引發問題。
FWIW,最好通過IIS來處理這個問題,因爲在某些傳統應用是怎麼回事是不是你的應用的領域。它應該只關心它需要什麼,而不是一些傳統的應用程序。在IIS中使用URL重寫模塊。 –