C # mvc3 перенаправить sitemap.xml в действие контроллера - PullRequest
1 голос
/ 16 апреля 2011

Я хочу перенаправить каждый вызов на веб-сайте www.domain.com/sitemap.xml в действие контроллера. Как мне этого добиться?

До сих пор я получил это, но возвращенный код состояния - 302. Я хочу вернуть ему статус 200, но все же перенаправить / переписать в действие контроллера. Причина, по которой я спрашиваю, заключается в том, что я хочу, чтобы каждый звонок по упомянутому URL перенаправлялся на управление. Контроллер выполняет некоторые действия, генерируя карту сайта в формате 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 Ответ

4 голосов
/ 16 апреля 2011

Для достижения этой цели вы можете использовать функцию маршрутизации MVC:

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

После размещения этого файла в вашем файле global.asax все запросы к домену domain.com/sitemap.xml будут перенаправлены в действие Sitemap контроллера Home.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...