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