通过web.config重写URL的通配符重定向

时间:2011-05-15 16:08:24

标签: url-rewriting web-config

我正在使用web.config中的url重写功能来重定向我的子域。这是我的规则:

   <rule name="redirect_page">
      <match url=".*" ignoreCase="false" negate="false" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\." negate="true" />
        <add input="{HTTP_HOST}" pattern="^([\w\-]+)\.mySite\.com$" />
      </conditions>
      <action type="Rewrite" url="profile.aspx?name={C:1}" />
    </rule>

这非常有用: http://myUser.mySite.com 重定向到 http://myUser.mySite.com/profile.aspx?name=myUser

BUT

http://myUser.mySite.com/image/myImage.jpg 重定向到 http://myUser.mySite.com/profile.aspx?name=myUser

=&GT;我想要的是 : http://myUser.mySite.com/image/myImage.jpg 重定向到 http://myUser.mySite.com/image/myImage.jpg

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这有点棘手,但这是解决方案:

    <rule name="SubDomainDoNothing" stopProcessing="true">
      <match url="(.+)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.plugandtable\.com$" />
      </conditions>
      <action type="Rewrite" url="{R:1}" />
    </rule>

    <rule name="SubDomainRedirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.plugandtable\.com$" />
      </conditions>
      <action type="Rewrite" url="profile.aspx?name={C:1}" />
    </rule>