2010-07-13 66 views
0

所以我正在一個項目有多個領域,我們想配置IIS重寫我們的請求,使URL更好。我一整天都在使用URL重寫模塊,並且無法獲得理想的結果。IIS7 URL重寫+子域+ ASP.Net MVC2

例子:

我現在有一個很長的URL,如「http://register.example.com/Registration/Register/New」,其中面積=註冊,控制器=註冊... 我想用戶通過「http://register.example.com」請求的網站,它擊中寄存器控制器,我已配置爲默認爲「新建」操作。因爲我給了註冊的子域名,IIS知道它將使用「註冊」區域。

終點URL會是這樣的 'http://register.example.com/Register/Finish'

這可能嗎?

感謝, 約翰

回答

1

看到如何您已經於您的標籤標註MVC,你意識到你可以用一個途徑做到這一點。

''# Default Catch All MapRoute 
    routes.MapRouteLowercase(_ 
     "Registration", _ 
     "{controller}/{action}/{step}", _ 
     New With {.controller = "Register", .action = "Registration", .step = "New"}) 

然後,您只需在IIS中創建一個單獨的「網站」以承載註冊應用程序。


PS ... IMO子域是你所描述的實施高估,經常壞的做法。子域用於描述一臺物理計算機(IE的SQL服務器可能位於sql.domain,您的網絡位於domainwww.domain之間,而您的電子郵件位於smtp.domain),因此它不應該用於分隔單個網站的各個部分。此外,許多搜索引擎的索引http:/subdomain.example.com與http://www.example.com分開,因此您的SEO值會下降。

+0

我有mvc默認路由,默認情況下控制器會進入其索引頁面。這不是問題。我想隱藏區域並使用子域(〜/ Area/Controller/Action?查詢)。這樣我可以有多個子域指向同一個站點,但用戶不知道,因爲該區域將被隱藏。 foo.site.com真的指向foo.site.com/foo,而bar.site.com是bar.site.com/bar – 2010-07-13 23:30:13

+0

爲什麼你想跨網域分隔你的網站?它可能會導致其他領域(如SEO)的悲傷。 – 2010-07-13 23:37:06

+0

嗯,這不是我的網站。我只是想做老闆問的問題:)....我完全同意SEO問題。我需要這些子域名,以便客戶更輕鬆地訪問網站的各個部分。這些部分是用戶可能或不可以訪問的不同服務。它們之間唯一的相似之處是用戶帳戶和登錄。如果我將sub.site.com重定向到site.com/sub,搜索引擎優化如何?我真的很感激反饋。 – 2010-07-15 14:13:04