2008-11-07 82 views
5

在IIS 6上,是否可以使多個域名指向同一個Web應用程序,並根據域名有條件地從Web應用程序內提供CSS?IIS上的多個域,相同的Web應用程序6

我需要在同一Web應用程序託管數百個不同的「皮膚」的,與皮膚是依賴於域名,我真的不想發動噸的Web應用程序。

回答

7

+1到rhinof添加多重身份,但創建一個HTTP模塊是有點超必殺。你可以簡單地通過檢查Request.Headers的內容[「HOST」]

2

1)在網站標籤的高級屬性頁面中添加所需的域名作爲網站標識符。

2)映射的CSS擴展到ASPNET_ISAPI.DLL

3)編寫一個HttpModule,將重新寫一個基於域名

4的.css請求的URL)通過啓用模塊web.config

+0

有沒有辦法通過API來做到這一點?將會有數百人。 – 2008-11-07 19:01:19

+0

如果您的服務器上只有一個站點。將網站設置爲默認網站,不要設置任何身份。所有的請求,無論域名,然後將轉到默認網站。 – 2008-11-07 19:10:37

+0

@Pittsburgh DBA 通過API,你是指通過COM或使用本機WIN32 API而不是通過託管.NET環境? 如果是這樣,您可以編寫一個本地isapi過濾器,它將執行重寫並將其註冊到IIS。 google關於以下關鍵詞 isapi filters iis – rhinof 2008-11-07 19:29:08

1

如果您使用主題,則可以更改主題,從而根據Request.ServerVariables [「Url」]中的域值(請注意,可以更改Page.PreInit中的css等)可能有更好的服務器變量來獲取域名,查找它)。

如果你不使用的主題,您可以通過編程檢查同一服務器變量掉出css文件。

MasterPages將成爲你的朋友在這裏。

希望推動你朝着正確的方向前進。這是可能的,也是常見的。

1

如果你要對網站,那麼我建議在全局標識符將不同的核心內容,以跟蹤用戶在其網站上,並把你的數據在DB地方針對該標識符參考。如果每個實例都是唯一的,那麼這是擴展應用程序的最簡單方法。

你可以把它放到一個類中,並且有一個通用模式來確定東西應該映射到哪裏。我建議,一旦你知道映射緩存,然後你將能夠做到你想要的,而沒有一千個應用程序或數據庫調用的延遲。

您還需要添加任何普通DB該參數調用,以便你只能得到爲正在舉辦的域結果。我有一些這方面的經驗,所以如果你想看一些特定的編碼例子,請留下一些評論。

您可以將此技術應用於任何文件,CSS樣式表或對象以供參考。

1

是的,這應該是簡單的做切換母版頁標籤的URL。我會採用在IIS中使用主機標頭將域名映射到您的應用的方法。然後,正如Martin所說,在您的應用程序中詢問Request.Headers [「HOST」]以切換樣式表。

相關問題