提问人:4532066 提问时间:10/6/2023 最后编辑:user6929424532066 更新时间:10/6/2023 访问量:73
IIS 重定向规则,用于重定向所有子域流量 [重复]
IIS Redirect Rule to redirect all subdomain traffic [duplicate]
问:
我在网站上的 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赞
samwu
10/6/2023
#1
我提供了一个想法,就是你可以用多个条件来匹配,然后把它设置为,只要满足其中一个条件,就会执行一个重定向。您可以使用此示例作为参考:logicalGrouping="MatchAny"
<rule name="RedirectWwwToNonWww" enabled="true" stopProcessing="false">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
<add input="{HTTP_HOST}" pattern="^([^.]+)\.(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:2}{REQUEST_URI}" redirectType="Permanent" />
</rule>
上一个:从传递的变量中读取文本文件
下一个:关闭浏览器时如何注销我的网站
评论