【问题标题】:Target subdomain and host domain with URL rewrite module带有 URL 重写模块的目标子域和主机域
【发布时间】:2020-02-08 05:01:53
【问题描述】:

下面我有一条规则适用于 example.com 的子域,但我现在需要使用 https://example.com (example.com)。 {C:1} 始终是子域,但现在我没有子域,它需要是“其他”。如果 {C:1} 为空或为“其他”为空并匹配没有子域的主机名,有没有办法设置默认值。

<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>

【问题讨论】:

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

标签: iis url-rewriting url-rewrite-module


【解决方案1】:

你可以只添加一个额外的规则,它将只捕获 exmple.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>

【讨论】:

  • 这就是我最终所做的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 2014-05-10
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多