Azure WebApp中web.config重定向规则配置问题求助
问题分析与修正方案
你的重定向规则失效主要有两个核心问题:
{HTTP_HOST}变量不包含协议前缀:该变量仅存储请求的主机名(如www.example.ie),不包含https://,原规则里的正则匹配^Https://www.example.ie$永远无法命中。- 正则表达式未转义特殊字符:域名里的
.是正则通配符,需要用\转义,否则会匹配任意字符,导致规则匹配不准确。
修正后的完整规则
<rule name="Redirect to ab-ng" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^www\.example\.ie$" /> <!-- 可选:如果只需要处理HTTPS请求,添加下面这个条件 --> <add input="{HTTPS}" pattern="on" /> </conditions> <action type="Redirect" url="https://www.example.com/ab-ng/{R:1}" redirectType="Permanent" /> </rule>
关键调整说明
- 修正
{HTTP_HOST}的匹配规则:改为^www\.example\.ie$,精准匹配目标主机名。 - 可选添加HTTPS验证条件:确保只有HTTPS协议的请求才会被重定向,避免HTTP请求误触发规则。
- 替换
{R:0}为{R:1}:{R:0}是整个匹配的URL(包括空路径),{R:1}是(.*)捕获的分组内容,当原请求是根路径时,不会在ab-ng后多一个冗余斜杠(如果不需要这个细节,也可以保留{R:0})。
测试建议
- 保存修改后的
web.config,重启IIS站点使规则生效。 - 访问
https://www.example.ie及任意子路径(如https://www.example.ie/test),检查是否正确跳转到https://www.example.com/ab-ng和https://www.example.com/ab-ng/test。
内容的提问来源于stack exchange,提问作者Docgyan
相关产品推荐
相关产品推荐

