【问题标题】:Lower case URLs in ASP.NET MVCASP.NET MVC 中的小写 URL
【发布时间】:2009-03-30 10:15:49
【问题描述】:

是否可以强制/扩展路由引擎以生成小写 URL,提供 /controller/action 而不是 /Controller/Action

【问题讨论】:

  • 是的,我认为是的。不确定它是否对 SEO 有任何影响,但它看起来确实好多了。

标签: asp.net-mvc asp.net-mvc-routing


【解决方案1】:

此外,您应该强制将所有大写的传入请求重定向到小写版本。搜索引擎对 URL 的处理是区分大小写的,这意味着如果您有多个指向同一内容的链接,则该内容的页面排名是分散的,因此会被稀释。

为此类链接返回 HTTP 301(永久移动)将导致搜索引擎“合并”这些链接,因此仅保留一个对您的内容的引用。

在您的Global.asax.cs 文件中添加这样的内容:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    // Don't rewrite requests for content (.png, .css) or scripts (.js)
    if (Request.Url.AbsolutePath.Contains("/Content/") ||
        Request.Url.AbsolutePath.Contains("/Scripts/"))
        return;

    // If uppercase chars exist, redirect to a lowercase version
    var url = Request.Url.ToString();
    if (Regex.IsMatch(url, @"[A-Z]"))
    {
        Response.Clear();
        Response.Status = "301 Moved Permanently";
        Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
        Response.AddHeader("Location", url.ToLower());
        Response.End();
    }
}

【讨论】:

  • 请注意,这还将考虑查询参数的大小写敏感性,这可能会或可能不会成为问题,具体取决于应用程序(对于我从事的某些工作肯定会如此)。
【解决方案2】:

可以,只需在 global.asax 文件中的路由中更改即可。

@All 询问是否重要:是的,我确实认为这很重要。将网址全部小写看起来更好。

每当你不让某件东西看起来不错时,比尔·巴克斯顿就会杀死一只小猫。

【讨论】:

  • 我认为任何在过去 12 个月中使用过 Mix 或 ReMix 的人都不得不忍受 Big Billy B (诚然非常有趣)关于设计需要融入产品的重要性的咆哮.
猜你喜欢
  • 2023-03-15
  • 2013-08-28
  • 2015-06-08
  • 1970-01-01
  • 2011-08-24
  • 2018-10-11
  • 2013-01-19
  • 2011-02-08
  • 2011-02-16
相关资源
最近更新 更多