You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS rewrite规则跳转aspx到html时域名重复叠加问题求助

问题原因分析

第一个跳转异常(出现重复主机名)

你的规则存在三个触发问题的点:

  1. 匹配范围错误:IIS URL重写模块如果在服务器全局级别配置规则,match url匹配的内容会包含主机名/站点标识前缀,导致你捕获的{R:1}值为my.domain.com/hello而非预期的hello,拼接后得到的相对路径my.domain.com/hello.html被IIS自动补全当前主机名,就出现了http://my.domain.com/my.domain.com/hello.html的异常结果。
  2. 相对路径解析错误:你配置的action路径没有加前导斜杠/,IIS会基于当前请求的上下文解析相对路径,在部分站点配置场景下也会触发路径拼接异常。
  3. 匹配规则疏漏:你当前的匹配规则^(.*).aspx$中.没有转义,会匹配任意字符,可能命中非.aspx后缀的错误请求。

第二个跳转异常(跳转到http://hello.html)

你修改为http://{R:1}.html的逻辑完全错误:{R:1}捕获的是路径部分的内容,而非主机名,直接拼接在http://后自然会生成http://hello.html的错误跳转地址。

正确解决方案

首先确认你将规则配置在对应站点的URL重写模块中,而非服务器全局级别,再使用以下规则:

<rule name="redirect aspx to html" stopProcessing="true">
    <match url="^(.*)\.aspx$" />
    <action type="Redirect" url="/{R:1}.html" redirectType="Temporary" />
</rule>

规则修改说明

  • 给action路径添加前导斜杠/,强制路径从站点根目录开始解析,避免相对路径拼接异常
  • 转义了匹配规则中的.,确保只匹配.aspx后缀的请求
  • redirectType可根据需求修改:Temporary对应302临时重定向,Permanent对应301永久重定向

配置完成后访问http://my.domain.com/hello.aspx会正常跳转到http://my.domain.com/hello.html。

内容的提问来源于stack exchange,提问作者AntonOfTheWoods

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:06:04