2011-12-07 10 views
2

私はGoDaddyが主催するMVC 3サイトで作業しており、URLに動的変数を格納する必要があります。ような何か:ホストされたサイトのMVC 3動的ルーティング

http://www.example.com/{Cat}/{List}/{Item}/{Action}または
http://{Cat}.example.com/{List}/{Item}/{Action}

後者は最高でしょう。

このサイトでは、カスタムリスト、リストカテゴリ、およびリストアイテムを作成できます。リストのカテゴリはSportsまたはNewsのようなもの、リストはNBA TeamsまたはPolitics、リストのアイテムはLakersまたはPres. Obamaです。ユーザは、3つのうちのいずれか1つを生成することができる(重複なし)。

私の目標は、URLがhttp://sports.example.com/nba/lakersようなものに作り、Controller = "Items", Action = "Details"にルーティングされたユーザーを持っている、のparams Cat = "sports", List = "nba", Item = "lakers"とすることで、ユーザーがAction(などの編集、削除、など)を指定した場合、それはDetailsを置き換えます。

私はIIS(特にGoDaddy経由のIIS)に精通していないので、サブドメインが機能するかどうかをIDKが判断しますが(それが最終的な目標です)、可能であれば、 (つまり、自己ホスト+ステップ)を行う必要があります。

おかげ

答えて

2

このセクションでは、例えば物理アドレスへの変換ドメインhttp://sports.example.com/あります203.10.01.1では、GoDaddyにサブドメインを登録する必要があります。 ASP.NET MVCはnba/lakersセクションを処理します。ドメインはhttp://sportworldwide.com/となり、サブドメインはhttp://nba.sportworldwide.com/lakersとなります。 MVC 3のみを使用したい場合。試してみてください

sportworldwide.com/sport/nba/lakers

routes.MapRoute("DefaultSport", "sport/{action}/{id}", 
        new { controller = "Sport", action = "", id= "" }); 

EDIT:

私は、あなたが必要です、私が見る唯一の問題は、カスタムルートハンドラを記述する必要がありますされ、ワイルドカードDNSレコードのパフォーマンスやなどにあまりコメントすることはできませんUrlのサブドメイン部分を取得するあなたのサブドメインのURLを処理するためにアクションまたはid値を変更します。 ここroutehandler経由のルートを変更する例を示します。 asp.net MvcHandler.ProcessRequest is never called

+2

が助けてくれてありがとう:)私自身がサイトをホストしている場合(これIISを完全にコントロールを持つ)、それは私がサブドメインをより柔軟にできるようになりますが?または、サブドメインがIISの外部で処理されていますか(DNSサーバーのいずれかまたは他の場所)私はダイナミックなサブドメインを持つサイトを見たので、可能でなければならない、私はちょうど彼らがそれをやっているかわからない! –

+2

ISAPIフィルタを調べる必要があります。ここでは、賛否両論についての記事 - ISAPIリライトフィルタを手に入れるための記事です。 http://www.seoconsultants.com/windows/isapi/subdomains/ (IIS用)http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/をご覧ください。 – Nickz

+2

ワイルドカードDNSレコードはどうですか?ワイルドカードDNSレコードを追加してサイトのIPに転送した場合、サブドメインに基づいてフィルタリングできますか? –