C#mvc3将sitemap.xml重定向到控制器操作

时间:2011-04-16 15:21:47

标签: c# asp.net-mvc-3 url-rewriting

我想将针对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");
    }
}

1 个答案:

答案 0 :(得分:4)

您可以使用MVC的路由功能来实现此目的:

routes.MapRoute(
    "Sitemap",
    "sitemap.xml",
    new { controller = "Home", action = "Sitemap" } 
);

将此放置在global.asax文件中后,对domain.com/sitemap.xml的所有请求都将路由到Home控制器的Sitemap操作。