IIS7 Url重写添加www前缀但不在IP中

时间:2012-12-21 15:57:45

标签: asp.net iis-7 url-rewriting

我在这里遇到了一个非常有趣的情况,希望你能帮助我。

如果用户输入domain.com,我会在web.config中使用此代码将其重定向到www.domain.com:

  <rules>
    <rule name="Add WWW prefix" >
      <match url="(.*)" ignoreCase="true" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.(.+)$" />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}/{R:1}"
           appendQueryString="true" redirectType="Permanent" />
    </rule>

这很简单干净,就像一个魅力。但是domain.com也有一个专用的IP,就像19.12.121.121。当我尝试使用IP连接我的站点时,web.config将我重定向到:www.19.12.121.121。

所以问题是,我该如何防止这种情况?它会重定向域而不是IP?

谢谢。

1 个答案:

答案 0 :(得分:0)

因为我已经看到你正在使用URL重写:

这是我使用的规则,它适用于我,包括IP地址。

<rule name="Redirect to WWW" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" negate="true" pattern="www.(YOUR DESIRED URL).com" />
</conditions>
<action type="Redirect" url="http://www.(YOUR DESIRED URL).com/{R:1}" redirectType="Permanent" />
</rule>