不同错误子域的 IIS CanonicalHostNameRule

IIS CanonicalHostNameRule for different wrong subdomains

我目前有这个 CanonicalHostNameRule。
我们有多个顶级域(.ch 和 .de),这就是我们不使用 IIS 默认的 CanonicalHostNameRule 的原因。

<rule name="RedirectToWWW" enabled="true" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^(?!www)(\S+)\.(de?|ch)$" />
  </conditions>
  <action type="Redirect" url="https://www.{C:0}/{R:0}" />
</rule>

这适用于

http://supertext.ch

但不适用于

http://holdrio.supertext.ch
http://ww.w.supertext.ch
http://www.mail.supertext.ch

我真的很想要将任何子域分别重定向到 www.supertext.ch 或 .de 的东西。有什么想法吗?

您可以使用以下模式:^(?!www\.supertext\.[de|ch])(\S+)\.(de|ch)$

结果例如:

holdrio.supertext.ch ->

  • {C:0}: holdrio.supertext.ch
  • {C:1}: holdrio.supertext
  • {C:2}: ch

holdrio.supertext.de->

  • {C:0} holdrio.supertext.de
  • {C:1} holdrio.supertext
  • {C:2}去

supertext.ch->

  • {C:0} supertext.ch
  • {C:1} 超文本
  • {C:2} 通道
<rule name="RedirectToWWW" enabled="true" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(?!www\.supertext\.[de|ch])(\S+)\.(de|ch)$" />
    </conditions>
    <action type="Redirect" url="https://www.supertext.{C:2}/{R:0}" appendQueryString="true" redirectType="Permanent"/>
</rule>

注:www.supertext.ch.supertext.ch未涵盖

我希望这对你有用。