IIS 7.0 URL REWRITE

时间:2015-05-26 14:30:53

标签: asp.net iis url-rewriting web-config

我正在为web.config中的某个网站设置重定向到WWW,并遇到了一个小问题。我在web.config中用于重写的代码如下:

<rewrite>
  <rules>
    <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="example.com" />
      </conditions>
      <action type="Redirect" url="http://www.example.com/{R:0}" />
    </rule>
  </rules>
  </rewrite>

我发现它实际上工作得太好了。由于模式&#34; example.com&#34;,我发现它现在正在重定向到dev和staging上的实时站点,因为我们的URL布局如下:dev.example。 com&amp; staging.example.com。目前,我刚刚对其他web.configs进行了重写,但我想知道是否有更好的模式或选项可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果您只想要没有子域的根域,那么您应该在HTTP_POST部分编辑您的模式。

在图案的前面放置一个^,表示开头。因此,如果网址以example.com开头,则会重定向到www.example.com

如果是dev.example.com,则会忽略此规则。

编辑您的示例:

<add input="{HTTP_HOST}" pattern="^example.com" />