12

ASP.NET MVC Web サイトに SEO フレンドリーな URL を実装したいと考えています。

現在、次のような URL があります。

http://www.domain.com/product?id=製品 ID

しかし今、私は自分のURLを次のように書き換えたいと思っています:

http://www.domain.com/productname

だから、誰でも上記で私を助けてください...

4

5 に答える 5

14

これは初心者に最適な記事です -> SEO フレンドリーな URL
この記事では、空白とダッシュを削除する方法についても説明しています。

于 2013-02-28T07:00:31.373 に答える
12

以下の解決策をお試しください。のglobal.asax.cs

routes.MapRoute(
    "Product",
    "{productName}",
    new { controller = "Product", action = "Index" },
    new { productName = UrlParameter.Optional  }
);

しかし、製品コントローラーproductNameインデックス アクション (つまり、製品コントローラーで:

public ActionResult index(string productName)
{
     //do something regarding get product by productname
}
于 2013-02-28T07:25:41.950 に答える
9

この方法でMVCルーティングエンジンにルートを追加できます-

Global.asax.cs

routes.MapRoute(
    "Product",
    "{controller}/{productId}/{productName}",
    new { controller = "Product", action = "Index" },
    new { productId = UrlParameter.Optional , productName = UrlParameter.Optional  }
);

これにより、次のようなURLを使用できるようになります

www.domain.com/productid/productname

あなたが達成できるかもしれないしできないかもしれない理由

www.domain.com/productname

productnameは識別子ではなく、レコードを一意に検索するために使用することはできません。URLに識別子が必要になります。

例-SOでこの質問のURLを見ると、IDがあり、SEOに適したテストが追加されています。

于 2013-02-28T06:32:19.430 に答える
0

これを処理するために、Global.asax に新しいルートを作成します。

    routes.MapRoute(
        "productId",                  // Route name
        "productId/{id}/{name}",      // URL with parameters
        new { controller = "Home", action = "productId", id = 1234, name = widget }  // Parameter defaults
    );

Asp.Net MVC にはルーティングが組み込まれているため、Url Rewriter は必要ありません。

詳細はこちら

于 2013-02-28T06:38:33.530 に答える