301 перенаправление в ASP.NET MVC с известных URL - PullRequest
1 голос
/ 24 января 2011

У меня есть сайт .Net MVC 1, который заменил устаревшее.У Google все еще есть стопка старых URL в индексе, и мне нужно 301 перенаправить их.Все старые URL-адреса являются страницами .html или .php, у меня также есть таблица БД для старых URL-адресов и их новый эквивалент.Я знаю, что мне нужно сделать, я просто не уверен, как это сделать!Вот мои мысли

  1. где-то в global.asax поймать URL, запрошенный с помощью регулярного выражения
  2. сделать поиск в БД, чтобы надеяться найти новый URL
  3. еслинашел новый URL, а затем 301 перенаправить его.если не 301 на домашнюю страницу, или бросить 404

Я попытался взломать себя без особой удачи, плюс все примеры, которые я могу найти в Интернете, на самом деле не охватывают этот пример.Очень хотелось бы сделать это с помощью кода, а не добавлять около 80 отдельных маршрутов в global.asax

Любая помощь или ссылки приветствуются

Ответы [ 2 ]

0 голосов
/ 25 января 2011

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

[UrlRoute(Name = "404", Path = "{*path}", Order = 100)]
public ViewResult NotFound(string path) 
{

}
0 голосов
/ 24 января 2011

Возможно, вы могли бы использовать Обработчики .Если URL-адреса достаточно различны, вы можете написать довольно широкую запись в разделе urlMappings вашего web.config, а затем использовать обработчик для перенаправления трафика.

...