Iis 7 如何使用IIS7重写模块匹配多个非www主机头

Iis 7 如何使用IIS7重写模块匹配多个非www主机头,iis-7,rewrite,Iis 7,Rewrite,我需要将几个不带www.的主机头重定向到它们的www.对应主机头。我似乎不能让它正常工作。到目前为止,我得到的是: <rule name="Redirect to WWW" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^www\." negate="true" /> </conditions&g

我需要将几个不带www.的主机头重定向到它们的www.对应主机头。我似乎不能让它正常工作。到目前为止,我得到的是:

<rule name="Redirect to WWW" stopProcessing="true">
 <match url=".*" />
  <conditions>
   <add input="{HTTP_HOST}" pattern="^www\." negate="true" />
  </conditions>
  <action type="Redirect" url="http://www.{C:0}/{R:0}" redirectType="Permanent" />
</rule>

这些域都是完全不同的,因此除了.com之外,没有任何公共字符串可以匹配

我的正则表达式可能不正确…

试试这个:

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

编辑:修复了正则表达式,现在应该可以工作了。

试试这个:

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


编辑:修复了正则表达式,现在应该可以工作了。

谢谢Scott!这非常有效。当您需要将超过一百个主机头重定向到www版本时,这确实节省了时间。谢谢Scott!这非常有效。当您需要将100多个主机头重定向到www版本时,它确实可以节省时间。