2010-08-17 70 views
0

我正在開發ASP.NET MVC多租戶應用程序。IIS 7:從不存在的子域重定向到子文件夾

現在我成功地創建動態的子文件夾,比如有人以用戶名「鮑勃」註冊,並獲得以下網址:

domain.com/bob

我的下一個目標是提供子域: bob.domain.com而不是子文件夾。

我發現使用ASP.NET和DNS WMI創建動態子域非常複雜。有沒有辦法告訴服務器,它必須從bob.domain.com重定向/重寫到domain.com/bob?

+1

你不能只是把你的domain.com(即* .domain.com)的根指向你的web服務器,檢查你的default.aspx文件中的請求,然後a)重定向到正確的子目錄或b )拋出404找不到頁面?我不認爲你需要爲你的每個目錄創建子域名...... – Tommy 2010-08-17 14:32:37

回答

2

在基於子域問候路由,您應該引用following SO post.

**對不起,我通常不喜歡只是鏈接到一個答案,但在這種情況下,我不想拿從原來的海報信貸爲解決*

編輯

Check out solution 2 to follow up下面我的意見作爲工作的例子。您可以忽略ISAPI重寫,因爲MVC路由引擎會爲您提供上述SO解決方案。下面是你可能會發現有用的代碼段:

設置DNS服務器

添加以下條目到您的DNS服務器 並相應地更改域名和IP地址 。

* .example.com的IN A 1.2.3.4設置Web服務器

我們假設你已經有 爲你的主站創建了一個網站: www.example.com。因此,我們只需加倍 檢查以確保它能夠 接受 子域的所有變體。

* Open IIS Management Console and select your web site. 
* Right click on it and select Properties. 
* Click on Web Site tab. 
* Click on Advanced button. 
* Make sure there is one entry under the Multiple identities for this 

網站與主機標題名稱字段 空白。此條目將攔截所有來自此IP地址的 請求。 *確保IP地址僅供本網站使用。

+0

感謝您的鏈接,但是他們擁有存在且由DNS服務器處理的靜態域名。我想使用動態域名。 – Alex 2010-08-17 14:45:14

+1

您是否看到我對上述問題的評論?您不必在DNS中註冊每個單個用戶子域。將您的域的通配符指向您的Web服務器。因此,mail.domain.com仍然會指向您的郵件服務器(因爲這是DNS中定義的條目),但一些RandomString.domain.com會轉到您的網絡服務器。從那裏,確定它是否是一個有效的目錄(重定向)或不(拋出404)。 – Tommy 2010-08-17 14:53:00

+0

謝謝!看起來這正是我需要的。我還沒有嘗試過,因爲我無法訪問服務器,但是當我這樣做時,我會讓你知道。 – Alex 2010-08-17 18:34:50

相關問題