ユーザーが投稿したコンテンツを 30 以上の言語でフロント ページに表示する Web サイトがあります。現在、次のようなパスを使用しています。
http://www.example.com?lang=en
またはそれが最初のページでない場合
http://www.example.com?lang=en&page=2
しかし、それは実際にはユーザーフレンドリーでもSEOフレンドリーでもありません。これらの値を次のようなものにルーティングする方法はmvcにありますか
http://www.example.com/en
と
http://www.example.com/en/2
この場合のように間に新しいアクションを追加することなくlang
:
http://www.example.com/lang/en/2
アップデート。誰かが同じものを必要とする場合に備えて、アレクセイの回答から思いついたものを次に示します。
言語のみの場合:
routes.MapRoute("MyLang", "{lang}", new { controller = "Home", action = "Index" },new { lang = @"\D{2}"});
言語と必要に応じてページが必要な場合:
routes.MapRoute("MyLang", "{lang}/{page}", new { controller = "Home", action = "Index", page = UrlParameter.Optional }, new { lang = @"\D{2}", page = @"\d+"});
2文字しかないアクションがない限り、他のパスをキャッチするべきではありません。