除特定URL之外的所有ASP.Net重定向规则

时间:2012-12-13 01:05:47

标签: asp.net regex

我有以下重定向规则,一个用于非www url(http://mysite.co.uk / ....),另一个用于www URL重定向到http://www.mysite2.co.uk/ ...

目前规则是一个全部。如果点击某个包含“/mystring/mystring.aspx”的URL,我不希望执行规则。

有人可以帮我写这个规则吗?

    <rule name="Canonical Host Name - mysite" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(?:www|[^.]+\.)*mysite\.co.uk$" />
      </conditions>
      <action type="Redirect" url="http://www.mysite2.co.uk/{R:1}" redirectType="Permanent" />
    </rule>     
    <rule name="Canonical Host - mysite 2" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.mysite\.co.uk$" />
      </conditions>
      <action type="Redirect" url="http://www.mysite2.co.uk/{R:1}" redirectType="Permanent" />
    </rule>

1 个答案:

答案 0 :(得分:1)

您应该可以通过添加条件并使用negate="true"来完成此操作。像这样:

<conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^(?:www|[^.]+\.)*mysite\.co.uk$" />
    <add input="{PATH_INFO}" pattern="mystring\/mystring\.aspx" negate="true" />
</conditions>