2010-01-11 169 views
5

我有一個網站運行IIS 7綁定到端口80與2域(爲我們的目的 - example.com & test.com)指出。URL重寫IIS 7 - URL重定向不工作

example.com是我們的規範名稱,所以我希望任何訪問test.com的客戶端都被重定向到example.com。

我一直在嘗試使用IIS 7重寫模塊。但它似乎沒有任何影響。我該如何解決這個問題?

這是我放在我的web.config中的規則。

<rewrite> 
    <rules> 
     <rule name="rule1" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*test.com*" /> 
      <action type="Redirect" url="{R:1}example.com{R:2}" /> 
     </rule> 
    </rules> 
</rewrite> 

回答

13

我一直在想它是錯誤的。這是爲了做到這一點:

<rule name="Canonical Host Name" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTP_HOST}" negate="true" pattern="^www\.example\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" /> 
</rule> 

裁判:http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx

+1

如果你想example.com重定向到www.example.com和趕上HTTPS和HTTP流量使用相同的規則?你不想重定向到「http:// ...」我嘗試更換HTTP_HOST,但它沒有工作。有任何想法嗎? –

+0

@Zim博士,但你爲什麼要這麼做? Https用於安全連接,如登錄和其他應該保護的信息。如果它不需要保護您使用Http。 你爲什麼要使用這兩個地方? – Tristan

+0

得到我的一件事是,我認爲規則評估的輸入可以根據您創建規則的網站層級中的哪個位置進行更改。例如,如果您的原始規則應用嵌套到一個級別,那麼如果將其移動到根/默認網站級別,您可能可以使其工作。 – ossek