2013-02-28 24 views
9

私のASP.NET MVCウェブサイトのSEOフレンドリーなURLを実装したいと思います。Asp.net MVC SEOフレンドリーなURL

現在、私は次のようにURLを持っている:

http://www.domain.com/product?id=productid

が、今私のような私のURLを書き換えたい:だから誰が上で私を助けることができますしてください

http://www.domain.com/productname

...

+3

ます。http://ofps.oreilly global.asax.cs

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

しかし、あなたproductNameで一意を維持し、(すなわち、製品・コントローラー製品のコントローラのindexアクションでそのことでレコードを取得するために必要。 co.jp/titles/9781449320317/ch_Routing.html –

答えて

9

以下の解決策を試してください。

public ActionResult index(string productName) 
{ 
    //do something regarding get product by productname 
} 
8

このようにしてMVCルーティングエンジンにルートを追加できます -

これはあなたがたりないかもしれない

www.domain.com/productname 

を達成することができるかもしれ理由は、その商品名ISN」です

www.domain.com/productid/productname 

のようなURLを持つことができるようになりますGlobal.asax.cs

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

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

例 - この質問のURLを見て、それはIDを持っていて、SEOに優しいテストを追加します。

+0

http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx –

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リライタの必要はありませんがあります。

詳細here

12

これは初心者のための最高の一品です - > SEO Friendly URls
記事も空白とダッシュを削除する方法を説明します。

関連する問題