2012-01-29 16 views
0

私は簡単なアプリケーションを作成しています。 Googleのインデックス作成時に、より良いSEO結果を得るために、* .htmlサフィックスをリンクに含める方が良いと聞きました。ASP .NET MVC 3のURL書き直し* * .html接尾辞をリンクに追加

とにかく、デフォルトのルーティング/書き換えURLを変更する方法はありますか、

domain.pl/index.html 
domain.pl/kontakt.html 
domain.pl/oferta.html 
domain.pl/sklepy.html 

そして、これらのリンクは、一つのコントローラ(のような にHomeController)に翻訳されていますが、{0}:私のリンクは次のように見えること(私は彼らが私の訪問者のため読めるポリッシュの単語を使用しています) {0} .htmlリンクから、アクション名として使用されますか?またはより良い、私のような英語のアクション名へのURLから{0}にマップしたいと思います:より良いSEOの結果について

index.html = index action 
kontakt.html = contact action 
oferta.html = offer action 
sklepy.html = shops action 

答えて

1

翻訳と接尾辞の両方について、AttributeRoutingを試してみることができます。 このパッケージインストールすると、あなたのGlobal.asaxの中にルートを設定する必要はありませんし、コントローラは、このようになります:

[GET("index.html")] 
public ActionResult Index() 
{ 
    return View(); 
} 

[GET("/any/url/path/kontakt.html")] 
public ActionResult Contact() 
{ 
    return View(); 
} 

[GET("oferta.html")] 
public ActionResult Offer() 
{ 
    return View(); 
} 

ところで、あなたはそれぞれの属性に重複の.htmlを削除する場合GETAttributeを拡張し、.htmlを追加する独自の属性を作成することができます。これは、構成するページがたくさんある場合に便利です。

8

わからないが、接尾辞を追加するだけで追加

 routes.MapRoute(
      "Default", 
      "{action}.html", 
      new { controller = "Home", action = "Index" } 
     ); 

ように簡単です。 htmlサフィックスからアクションパラメータのプレースホルダー。

翻訳のために、あなたは組み合わせ上記の両方のコードで ActionNameAttribute

[ActionName("kontakt")] 
    public ActionResult Contact() 
    { 
     return View(); 
    } 

を使用することができ、あなたはHome/Contactアクションにマッピングされdomain.pl/kontakt.htmlを取得します。

関連する問題