Iis-7

如何使用 IIS7 URL Rewrite 2.0 管理 WinHost 上的子域?

  • March 23, 2021

我正在嘗試WinHost,但遇到了一些子域問題。在 WinHost 上,每個主機帳戶可以有多個子域,但每個子域都指向根網站。例如,您可以擁有 www.example.com、sub1.example.com 和 sub2.example.com,但它們都在http://www.example.com/上顯示內容。

其他主機允許您將子域指向您網站中的子文件夾。這將允許您將 sub1.example.com 指向 /sub1,將 sub2.example.com 指向 /sub2,將 www.example.com 指向 /。

WinHost 建議使用asp/aspx 頁面將http://sub1.example.com重定向到指向 /sub1的http://sub1.example.com/sub1 。雖然這可行,但我不想在 url 中有兩次子域。

所以我嘗試使用 IIS7 URL Rewrite 將http://sub1.example.com指向 /sub1。Ben Powell 在他的部落格上詳細描述了這一點。這很好,除了 Request.ApplicationPath 現在是 /sub1/path/to/current/page.aspx,它破壞了 ASP.Net 主題(可能還有其他東西)。

我該怎麼做才能修復 ApplicationPath?有沒有更好的方法來實現這一點?

我不知道如何修復應用程序路徑,所以現在我只是使用 URL 重寫模組來重定向(而不是重寫)http://sub.example.com/abchttp://sub.example.com/sub/abc. 這並不理想,但它有效。有關詳細資訊,請參閱我的部落格文章

除了重定向之外,您還需要將每個站點標記為 IIS 中的應用程序。WinHost 應該有一個控制面板或方法讓您將每個站點標記為自己的應用程序。這將使 /sub1/ 之類的文件夾成為根應用程序。

引用自:https://serverfault.com/questions/134125