IIS主机标头和非WWW到WWW

时间:2011-12-09 02:25:38

标签: iis-7 windows-server-2008 hostheaders hostheader

我知道有很多关于如何将非www重定向到www站点的示例,但我没有使用任何重写utils / ISAPI。

在我的Windows 2008R2框中,我在IIS中设置了多个站点。我为www和非www版本设置了主机头。前几个网站工作正常。如果您尝试访问非www站点,则会自动重定向到www版本。

据我所知,除了添加适当的主机标头之外,我没有做任何其他特殊操作 - 没有重复使用重写/ ISAPI。

为了实现这一点,我在服务器管理器方面缺少什么?

1 个答案:

答案 0 :(得分:1)

我猜有两种方法。一种是通过IIS管理器创建重写规则。

另一种是设置web.config的system.webserver部分,如下所示:

  <system.webServer>

    <rewrite>
      <rules>
        <clear/>
        <rule name="Redirect Non WWW to WWW" enabled="true" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
          </conditions>
          <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
        </rule>

        <!--<rule name="Default Document" stopProcessing="false">
          <match url="(.*)default.aspx"/>
          <action type="Redirect" url="{R:1}" redirectType="Permanent"/>
        </rule>-->

      </rules>
    </rewrite>

    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>

    <httpErrors errorMode="Custom"/>

  </system.webServer>