IIS全站重定向规则/console路径关联资源仍跳转新域名问题排查
问题原因
1. 新增的例外规则匹配范围过窄
你单独配置的例外规则匹配规则为^console$,属于完全匹配,仅能命中/console这个根路径,无法匹配/console下的静态资源(如js、css、图片)、接口请求等子路径内容,这部分子路径请求没有被例外规则拦截,依然会被后续重定向规则处理,跳转到新域名,导致跨域问题。
同时该规则未添加域名匹配条件,也未开启忽略大小写配置,存在匹配精度问题。
2. 规则执行顺序问题
IIS重写规则是从上到下顺序执行的,如果你的例外规则放在了全局重定向规则的后面,请求会先被重定向规则处理,例外规则根本不会生效。
3. 可能存在的浏览器缓存问题
你当前使用的是默认301永久重定向,浏览器会长期缓存重定向结果,即便修改了规则,之前缓存的资源重定向结果依然会生效,导致看起来规则未生效。
修正方案
- 调整规则顺序:将所有例外规则放在全局重定向规则之前,保证例外规则优先匹配。
- 修正例外规则配置:扩大匹配范围覆盖所有console子路径,补充域名匹配条件,开启忽略大小写:
<rule name="Ignore console path" stopProcessing="true" enabled="true"> <match url="^console(.*)$" ignoreCase="true" /> <conditions> <add input="{HTTP_HOST}" pattern="^www.mohavecounty.us$" ignoreCase="true" /> </conditions> <action type="None" /> </rule>
- 清理缓存测试:修改规则后使用浏览器无痕模式测试,或清理浏览器缓存、IIS服务器缓存,避免历史重定向缓存干扰测试结果。
- 额外排查项:如果修改规则后依然存在新域名的资源请求,检查ASP.NET站点配置,确认是否设置了默认主机头为
www.mohave.gov,导致程序生成资源链接时自动携带新域名。
内容的提问来源于stack exchange,提问作者adviner
相关产品推荐
相关产品推荐

