2009-07-17 12 views
1

我有一個創建的虛擬目錄和一個指向該虛擬目錄的子域。當他們可以離開子域鏈接時,我的鏈接總是路由到subdomain.domain.com/subdomain/controller/action。有沒有簡單的方法來阻止它?如何保持subdomain.domain.com鏈接從映射到subdomain.domain.com/subdomain?

此外,當我將anotherdomain.com映射到我的虛擬目錄時,這也是同樣的問題。它最終鏈接到anotherdomain.com/virtualdir/controller/action。

對我來說,我的所有鏈接都是myapp.com/myapp/action/controller,看起來並不專業。

回答

2

我也想知道這一點,但我不認爲你可以在ASP.NET MVC自帶的路由中實現這一點。

幸運的是,用戶在選擇他們想要如何處理這些事情方面有很大的自由度,您可能需要考慮的解決方案可以在here找到。

ASP.NET MVC團隊似乎已經認識到這應該默認預先燒製到MVC中,但直到第2版我纔看到任何事情,因爲它需要更改路由引擎。

如果沒有這個,你可能要考慮url重寫(如果你有IIS7,這顯然會容易得多)。 Here是一個討論這個問題的IIS論壇帖子。

IIS 7重寫實施例(從here截取):

<rule name="RewriteSubdomain"> 
    <match url="^(.+)"> 
    <conditions> 
    <add input="{HTTP_HOST}" type="Pattern" pattern="^([^.]+)\.myapp\.com$"> 
    </conditions> 
    <action type="Rewrite" url="{C:1}/{R:1}" /> 
</rule>