我正在開發ASP.NET MVC多租戶應用程序。IIS 7:從不存在的子域重定向到子文件夾
現在我成功地創建動態的子文件夾,比如有人以用戶名「鮑勃」註冊,並獲得以下網址:
domain.com/bob
我的下一個目標是提供子域: bob.domain.com而不是子文件夾。
我發現使用ASP.NET和DNS WMI創建動態子域非常複雜。有沒有辦法告訴服務器,它必須從bob.domain.com重定向/重寫到domain.com/bob?
我正在開發ASP.NET MVC多租戶應用程序。IIS 7:從不存在的子域重定向到子文件夾
現在我成功地創建動態的子文件夾,比如有人以用戶名「鮑勃」註冊,並獲得以下網址:
domain.com/bob
我的下一個目標是提供子域: bob.domain.com而不是子文件夾。
我發現使用ASP.NET和DNS WMI創建動態子域非常複雜。有沒有辦法告訴服務器,它必須從bob.domain.com重定向/重寫到domain.com/bob?
在基於子域問候路由,您應該引用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地址僅供本網站使用。
感謝您的鏈接,但是他們擁有存在且由DNS服務器處理的靜態域名。我想使用動態域名。 – Alex 2010-08-17 14:45:14
您是否看到我對上述問題的評論?您不必在DNS中註冊每個單個用戶子域。將您的域的通配符指向您的Web服務器。因此,mail.domain.com仍然會指向您的郵件服務器(因爲這是DNS中定義的條目),但一些RandomString.domain.com會轉到您的網絡服務器。從那裏,確定它是否是一個有效的目錄(重定向)或不(拋出404)。 – Tommy 2010-08-17 14:53:00
謝謝!看起來這正是我需要的。我還沒有嘗試過,因爲我無法訪問服務器,但是當我這樣做時,我會讓你知道。 – Alex 2010-08-17 18:34:50
你不能只是把你的domain.com(即* .domain.com)的根指向你的web服務器,檢查你的default.aspx文件中的請求,然後a)重定向到正確的子目錄或b )拋出404找不到頁面?我不認爲你需要爲你的每個目錄創建子域名...... – Tommy 2010-08-17 14:32:37