Iis 具有URL重写模块的目标子域和主机域

Iis 具有URL重写模块的目标子域和主机域,iis,url-rewriting,url-rewrite-module,Iis,Url Rewriting,Url Rewrite Module,下面我有一个规则可以很好地处理example.com的子域,但我现在需要使用(example.com)。{C:1}始终是子域,但现在我没有子域,它需要是“其他”。如果{C:1}为null或为空,且与没有子域的主机名匹配,是否有方法设置默认值 <rule name="Apple Icon Rewrite" stopProcessing="true"> <match url="^(apple-touch-icon.*?)(?:-precomposed)?(.pn

下面我有一个规则可以很好地处理example.com的子域,但我现在需要使用(example.com)。{C:1}始终是子域,但现在我没有子域,它需要是“其他”。如果{C:1}为null或为空,且与没有子域的主机名匹配,是否有方法设置默认值

<rule name="Apple Icon Rewrite" stopProcessing="true">
          <match url="^(apple-touch-icon.*?)(?:-precomposed)?(.png)$" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_HOST}" pattern="^(.*).example.com$" />
          </conditions>
          <action type="Rewrite" url="/assets/sports/{C:1}/icons/{R:1}{R:2}" appendQueryString="false" />
        </rule>

您只需添加一条附加规则,它将只捕获example.com域,如下所示:

<rule name="Apple Icon Rewrite" stopProcessing="true">
      <match url="^(apple-touch-icon.*?)(?:-precomposed)?(.png)$" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^example.com$" />
      </conditions>
      <action type="Rewrite" url="/assets/sports/other/icons/{R:1}{R:2}" appendQueryString="false" />
</rule>


IIS URL重写只能处理琐碎的情况。如果您需要对行为进行更多控制,请实现您自己的IIS模块,或者在您自己的web应用程序中实现这样的逻辑。我不同意。我在URL重写模块中做了一些复杂的工作,但是没有关于我能做什么和不能做什么的最佳文档。这就是我最终要做的。