2011-03-22 35 views
1

我問了一個previous question關於如何讓多個子域都指向同一個站點;我接受的答案是使用URL重寫。如何在IIS7上設置URL重寫,以便多個子域名重定向到正確的網站?

很酷。但是對於我的生活,我無法弄清楚URL Rewrite是如何工作的,我認爲自己是一個相對聰明的人。 | - )很多問題...

  • 每個客戶(並且將有數百個,如果不是數千個)獲得他們自己的子域,例如customer1.mydomain.com, cooldude.mydomain.com等正則表達式將是(.+)\.mydomain\.com,所有這些網址應該被重定向到我已經命名爲customers.mydomain.com的IIS上的網站。我在URL Rewrite上找到的所有例子都是關於引用文檔的,例如mydomain.com/thing.aspx?id=123更改爲mydomain.com/thing/123,我並不真正感興趣。下面是一條線索:如下圖所示,「輸入」列總是顯示「/'後面的URL路徑 - 但沒有出現以任何方式改變這一點。

URL Rewrite pic

  • 我假設重寫規則應該在默認的Web站點來放,但我希望規則重定向到customers.mydomain.com網站。你如何強制重定向到一個特定的網站,這樣我仍然能夠看到子域名(它決定了我登錄的客戶網站)?

回答

2

我想你想要做的就是這個工作是增加一個輸入條件,你重寫規則是什麼。您可以在http://learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/的「參考重寫規則中的重寫映射」部分中閱讀它。

下面是一個例子,我想會爲你工作:

<rule name="My Rule"> 
    <match url="(.+)?" negate="false" /> 
    <action type="Redirect" url="http://{C:1}.mydomain.com/{R:0}" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="(.+)\.mydomain\.com" /> 
    </conditions> 
</rule>