2010-12-14 54 views
2

我想在IIS7 Web服務器上實現重定向。基本上,如果子域未包含在URL中,我將重定向到www子域。重定向到IIS7中的www - 經典管道模式

http://mysite.com/file.aspx重定向到http://www.mysite.com/file.aspx

http://mysite.com/image.jpg重定向到http://www.mysite.com/image.jpg

http://mysite.com/text.html重定向到http://www.mysite.com/text.html

如何做到這一點?

我不想寫任何HTTP模塊 - 它必須通過IIS配置完成。

另外,我需要使用Classic Pipeline模式,並且不能安裝任何ISAPI插件。

可能嗎?

回答

0

該解決方案爲我工作:

1)安裝URL重寫組件:

http://www.iis.net/download/urlrewrite

2)添加到web.config中:

<system.webServer> 
<rewrite> 
    <rules> 
    <rule name="CanonicalHostNameRule1" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="^mysite\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.mysite.com/{R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 
0

,甚至可以把這個變成你的web.config文件:

<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Redirect to WWW" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions> 
      <add input="{HTTP_HOST}" pattern="^http://mysite.com$" /> 
      </conditions> 
      <action type="Redirect" url="http://www.mysite.com/{R:0}" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

在IIS7它可以通過URL重寫部分來完成。

+0

我加入你的代碼我web.config中。它會產生500內部服務器錯誤。 – frankadelic 2010-12-15 06:37:46