IIS 7.0 URL 重写

IIS 7.0 URL REWRITE

我正在为 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>

我发现它实际上运行得有点太好了。由于 "example.com" 模式,我看到它现在正在重定向到我们在开发和登台上的实时站点,因为我们的 URL 布局如下:dev.example.com & staging.example.com。目前,我刚刚评论了对这些其他 web.config 的重写,但我想知道是否有更好的模式或选项来解决这个问题。

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

在模式前加一个^,意思是开始于。所以如果 url 以 example.com 开头,那么它会被重定向到 www.example.com.

如果是 dev.example.com,这条规则将被忽略。

编辑您的示例:

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