为什么我的iis url重写规则在这里错了?

时间:2014-09-17 16:35:24

标签: iis url-rewriting

我拥有的是什么 devoldname.mysite.net
stagingoldname.mysite.net
oldname.mysite.net

我想要做urlrewrite或urlredirect,所以上面网址的所有流量都会转到:
devnewname.mysite.net
stagingnewname.mysite.net
newname.mysite.net

我定义了这个iis重写规则

<rewrite>
      <rules>
        <rule name="test" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="(.*)oldname.mysite.net" />
          </conditions>
          <action type="redirect" url="{C:1}newname.mysite.net" />
        </rule>
      </rules>
    </rewrite>

我希望它会捕获devoldname.mysite.net并重定向到devnewname.mysite.net

但是,通过此网址访问时: devoldname.mysite.net/admin/login.aspx?ReturnUrl=%2fadmin%2fsamples2.aspx

我得到了这个: http://devoldname.mysite.net/devnewname.mysite.net?ReturnUrl=%2fadmin%2fsamples2.aspx

所以它以某种方式将它们加在一起并且似乎取代了login.aspx部分,我做错了什么?

我做错了什么?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你非常接近。我敢打赌,如果你重定向到完全限定的URL,它会起作用。尝试这样的事情:

     <rewrite>
        <rules>
          <rule name="test" stopProcessing="true">
            <match url=".*" />
            <conditions>
              <add input="{HTTP_HOST}" pattern="(.*)oldname.mysite.net" />
            </conditions>
            <action type="redirect" url="http://{C:1}newname.mysite.net" />
          </rule>
        </rules>
      </rewrite>