ASP.NET MVC - 301重定向 - 搜索引擎优化问题

时间:2010-12-09 17:43:33

标签: asp.net-mvc seo iis-6 http-status-code-301

所以我有一个像这样的ActionName:

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

Google将其编入索引为:http://www.example.com/Teams/ChicagoBears

我使用IIS6并且无法访问IIS。

当然,它有一个连字符。因此,如果有人点击该链接,Google就会显示404。

如何在此实例中设置301重定向?我无法创建另一个名为ChicagoBears()的方法,所以......

谢谢你们。

4 个答案:

答案 0 :(得分:5)

为Teams / ChicagoBears创建一条路径,指向一个提供永久重定向的操作。

在Global.asax中......

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

在TeamsController中......

public ActionResult RedirectChicagoBears()
{
    return RedirectToActionPermanent("Chicago-Bears");
}

答案 1 :(得分:3)

网址重写模块是您的朋友。学习它,活它,爱它...

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

当我从DasBlog迁移到WordPress时,我广泛使用它。所有旧的博客网址都使用301重定向到新的。强烈推荐。

更新:IIS6有URL重写器。一个快速的谷歌搜索出现了:

(通过http://forums.iis.net/t/1160436.aspx找到。)

答案 2 :(得分:1)

更新:我引用的此博客似乎不再可用,因此我更新了链接以引用互联网存档版本。

查看此博客文章,了解最佳解决方案*:https://web.archive.org/web/20160528185929/http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx

基本上他正在做的是创建一个可以用于多个路由的可重用类,它们只是发出永久重定向到指定的Action方法。

**注意:这不是我的博客,而是我遇到的一个。*

答案 3 :(得分:0)

关于这一方的晚会很晚,但我写了 a blog post about permanent redirects for legacy routes ,允许这个 -

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

使用Location使用路由值生成要重定向的Url.Action,因此只要RouteTable中的路由与路由值匹配,301重定向就会按预期工作。在您的示例中,当网址格式与http://www.example.com/Teams/Chicago-Bears匹配时,生成的网址应为"Teams/ChicagoBears"

我不会在这里重复代码,因为它有很多,而且它在博客上

相关问题