将非www重定向到www规则导致文件问题

时间:2012-03-27 20:27:55

标签: asp.net iis redirect web-config rules

我已在web.config中添加此规则,以将非www网址重定向到www。

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

虽然它适用于主站点URL。就像用户输入http://example.com一样,它会重定向到http://www.example.com

但对于某些网址,例如

http://www.example.com/userfiles/abc.pdf

重定向到

http://www.www.example.com/userfiles/abc.pdf

在这里,您可以在网址中看到2次www。

1 个答案:

答案 0 :(得分:1)

我想这个应该有效:

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

如果这个没有按预期工作,您可以尝试添加另一个条件:

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

希望这有帮助。