这个问题已经有答案了:
IIS Rewrite URL Condition Grouping(1个答案)
10天前关闭。
我在我的网站上的web.config文件中定义了这个重写规则:
<rule name="RedirectWwwToNonWww" enabled="true" stopProcessing="false">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:2}{REQUEST_URI}" redirectType="Permanent" />
</rule>
规则将重定向如下:
- 出发地:
www.example.com/test
- 至:
example.com/test
该规则工作正常,但是,我想改变规则,使所有的子域重定向到主网站-例如。
- 出发地:
this.example.com/test
- 至:
example.com/test
或
- 出发地:
something.example.com/test
- 至:
example.com/test
我正在努力解决如何改变正则表达式来实现这一点。
我尝试了这个模式:
<add input="{HTTP_HOST}" pattern="^([^.]+)\.(.*)$" />
其工作原理如下:
- 出发地:
something.example.com/test.html
- 至:
example.com/test.html
然而,当没有子域时,它不做我所要求的,因为我最终得到:
- 出发地:
example.com/test.html
- 至:
com/test.html
如何修改规则,使子域重定向到主站点,但如果没有子域,规则不会触发?
1条答案
按热度按时间gmxoilav1#
我提供一个思路,就是可以用多个条件来匹配,然后设置为
logicalGrouping="MatchAny"
,只要满足其中一个条件,就会进行重定向。您可以使用此示例作为参考: