我正在为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进行了重写,但我想知道是否有更好的模式或选项可以解决这个问题。
答案 0 :(得分:1)
如果您只想要没有子域的根域,那么您应该在HTTP_POST
部分编辑您的模式。
在图案的前面放置一个^
,表示开头。因此,如果网址以example.com
开头,则会重定向到www.example.com
。
如果是dev.example.com
,则会忽略此规则。
编辑您的示例:
<add input="{HTTP_HOST}" pattern="^example.com" />