Mvc 3 перенаправляет маршруты, ведущие себя странно - PullRequest
1 голос
/ 26 июня 2011

Я пытался решить эту проблему уже пару дней, но безуспешно.Дело в том, что я переписал старый сайт веб-форм в mvc 3 и получил несколько устаревших URL-адресов, которые нужно перенаправить на новый URL-адрес: s

Так выглядят 2 маршрута в глобальном масштабе.asax, который должен перехватывать все запросы к старому URL: s

 routes.MapRoute(
            "legacyevents",
            "events/{*slug}",
            new { controller = "Redirect", action = "RedirectLegacyRoute" },
            new[] { "Web.Controllers" }
          );

            routes.MapRoute(
            "legacyarticles",
            "articles/{*slug}",
            new { controller = "Redirect", action = "RedirectLegacyRoute" },
            new[] { "Web.Controllers" }
          );

Странная вещь в том, что когда запрос выглядит так:

events/randomevent__12.aspx

все работает хорошо, но если E в событияхв верхнем регистре Events / randomevent__12.aspx asp.net где-то добавляет еще одно слово события в URL, чтобы оно выглядело так, когда оно попадает в RedirectController

events/events/randomevent__12.aspx

Из-за отсутствия знаний о SEO, когда я писал в Интернетеприложение форм несколько лет назад многие входящие ссылки на старые URL-адреса имеют смешанный регистр :( поэтому мне действительно нужно решить эту проблему

Маршрут, который должен обрабатывать статьи, работает так, как задумано, и не заботится о регистреURL входящего запроса, что делает этот случай таким странным, поскольку маршруты направлены на один и тот же RedirectController.

Любая помощь будет оцененаРед, и если вам нужна дополнительная информация, я с радостью предоставлю ее

С наилучшими пожеланиями

// K

1 Ответ

0 голосов
/ 25 сентября 2011

Вы знаете, что можете использовать все возможности регулярных выражений при сопоставлении маршрутов?

См. Примеры здесь .

...