12

ルーティング エンジンが小文字の URL を生成するように強制/拡張することは可能/controller/actionです/Controller/Actionか?

4

2 に答える 2

16

さらに、大文字の受信リクエストを強制的に小文字バージョンにリダイレクトする必要があります。検索エンジンは URL の大文字と小文字を区別して扱います。つまり、同じコンテンツへのリンクが複数ある場合、そのコンテンツのページ ランキングは分散され、希薄になります。

このようなリンクに対して HTTP 301 (Moved Permanently) を返すと、検索エンジンはこれらのリンクを「マージ」し、コンテンツへの参照を 1 つだけ保持します。

次のようなものを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();
    }
}
于 2010-09-07T23:56:37.230 に答える
4

はい、global.asax ファイルのルーティングで変更するだけです。

@それが重要かどうかを尋ねるすべて: はい、私それが重要だと思います. URL をすべて小文字にすると見栄えが良くなります。

ビル・バクストンは、できるときに見栄えを良くしないと、子猫を殺します.

于 2009-03-30T10:28:13.007 に答える