2

我将现有规则作为 xml 将任何请求重写或重定向到特定 url 到其域。它不会让任何出站请求离开域。

我只想向一个网址添加一个例外(比如 abc.com)。如何为特定请求添加例外?

(请不要提供 global.asax 之类的东西,因为 IIS 不与 ASP.NET 应用程序一起工作,而是与其他一些应用程序一起工作)。

当前规则:

<rewrite>
    <rules>
      <rule name="topcontent">
           <match-url=".*">
                <action type="rewrite" url="mysite.com/{R:0}"/>
           </match-url>
       </rule>
    </rules>
</rewrite>

如果有任何入站请求,它会将 URL 重写为 mysite.com。我需要添加一个例外说abc.com/......怎么做?

4

3 回答 3

2

在规则之上创建另一个topcontent规则:

<rule name="special">
    <match-url="abc.com">
        <action type="rewrite" url="mysite.com/specialPage.htm"/>
    </match-url>
</rule>

这是一个类似的问题:IIS URL 重写异常

于 2012-11-19T02:45:18.417 回答
0

您可以使用以下代码:

<rule name="special" enabled="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll" >
    <add input="{HTTP_HOST}" pattern="^(www\.)?abc\.com$" negate="true" />
  </conditions>
  <action type="Redirect" url="http://mysite.com/{R:0}"/>
</rule>

规则中添加了一个条件,所以如果它不满足,那么动作将被执行(negate="true"

它将检查,如果它与abc.comwww.abc.comhttp://{HTTP_HOST}/url不匹配,这是例外,那么它将采取行动。

我也认为你可以Redirect在这里使用而不是Rewrite

于 2012-11-19T21:00:36.347 回答
0

进入 IIS 管理器 > [您的站点] > 网址重写。

在与 abc.com 匹配的规则之前添加一条新规则,然后选中“停止处理后续规则”。

于 2012-11-16T14:03:09.053 回答