ASP.NET MVC Web サイトに SEO フレンドリーな URL を実装したいと考えています。
現在、次のような URL があります。
http://www.domain.com/product?id=製品 ID
しかし今、私は自分のURLを次のように書き換えたいと思っています:
http://www.domain.com/productname
だから、誰でも上記で私を助けてください...
ASP.NET MVC Web サイトに SEO フレンドリーな URL を実装したいと考えています。
現在、次のような URL があります。
http://www.domain.com/product?id=製品 ID
しかし今、私は自分のURLを次のように書き換えたいと思っています:
http://www.domain.com/productname
だから、誰でも上記で私を助けてください...
これは初心者に最適な記事です ->
SEO フレンドリーな URL
この記事では、空白とダッシュを削除する方法についても説明しています。
以下の解決策をお試しください。の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
}
この方法で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に適したテストが追加されています。
これを処理するために、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 は必要ありません。
詳細はこちら