ASP.NET MVC - 301 Redirect - проблема с SEO - PullRequest
1 голос
/ 09 декабря 2010

Итак, у меня есть ActionName:

[ActionName("Chicago-Bears")]
public ActionResult ChicagoBears() {
  return View();
}

Google проиндексировал это как: http://www.example.com/Teams/ChicagoBears

Я застрял на IIS6 и сам не имею доступа к IIS.1007 *

Конечно, теперь в нем есть дефис.Таким образом, Google покажет 404, если кто-то нажмет на эту ссылку.

Как настроить перенаправление 301 в этом случае?Я не могу создать другой метод с именем ChicagoBears (), так что ...

Спасибо, ребята.

Ответы [ 4 ]

5 голосов
/ 09 декабря 2010

Создайте маршрут для команд / ChicagoBears, который указывает на действие, которое дает постоянное перенаправление.

В Global.asax ...

routes.MapRoute("ChicagoBearsRedirect",
    "Teams/ChicagoBears",
    new { controller = "Teams", action = "RedirectChicagoBears" }
);

В TeamsController ...

public ActionResult RedirectChicagoBears()
{
    return RedirectToActionPermanent("Chicago-Bears");
}
3 голосов
/ 09 декабря 2010

Модуль перезаписи URL - ваш друг.Изучите это, живите этим, любите это ...

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

Я использовал это широко, когда я мигрировал из DasBlog в WordPress.Все мои старые URL-адреса блогов перенаправляются с использованием 301-х на новые.Настоятельно рекомендуется.

ОБНОВЛЕНИЕ: есть перезаписывающие URL для IIS6.Быстрый поиск в Google появился:

(найдено через http://forums.iis.net/t/1160436.aspx.)

1 голос
/ 09 декабря 2010

ОБНОВЛЕНИЕ: Этот блог, на который я ссылался, кажется, больше не доступен, поэтому я обновил ссылку для ссылки на версию интернет-архива.

Проверьте это сообщение в блоге для отличного решения *: https://web.archive.org/web/20160528185929/http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx

По сути, он создает класс многоразового использования, который можно использовать для нескольких маршрутов, и они просто выдают постоянное перенаправление на указанный метод Action.

** Примечание: это не мой блог, а тот, с которым я просто столкнулся. *

0 голосов
/ 06 октября 2011

Немного опоздал на вечеринку об этом, но я написал сообщение в блоге о постоянных перенаправлениях для устаревших маршрутов , которое позволяет это -

routes.MapLegacyRoute(
    null, 
    "Teams/ChicagoBears", 
    new { controller = "Teams", action = "ChicagoBears", area="" }
);

Location для перенаправления генерируется с использованием значений маршрута с использованием Url.Action, поэтому, если у вас есть маршрут в RouteTable, который соответствует значениям маршрута, перенаправление 301 будет работать так, как задумано. В вашем примере сгенерированный URL должен быть http://www.example.com/Teams/Chicago-Bears, когда шаблон URL совпадает с "Teams/ChicagoBears".

Я не буду повторять здесь код, так как он довольно небольшой, и он есть в блоге

...