我想将针对www.domain.com/sitemap.xml的网站上的每个电话重定向到控制器操作。我怎样才能做到这一点?
到目前为止我已经得到了这个,但返回的状态代码是302.我想用它返回200状态,但仍然重定向/重写为控制器动作。我问的原因是我希望每次调用所提到的URL重定向到一个控制分数。控制器执行一些foo生成xml站点地图。然后需要返回此控制分数的输出。
protected void Application_BeginRequest()
{
//Check if an call for the sitemap.xml has been made
if (Request.Path == "/sitemap.xml")
{
Response.RedirectToRoute("XmlSitemap");
}
}
答案 0 :(得分:4)
您可以使用MVC的路由功能来实现此目的:
routes.MapRoute(
"Sitemap",
"sitemap.xml",
new { controller = "Home", action = "Sitemap" }
);
将此放置在global.asax文件中后,对domain.com/sitemap.xml的所有请求都将路由到Home控制器的Sitemap操作。