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

如何在web.config中实现带子路径的跨域名301重定向?

IIS实现旧域名到新域名的301永久重定向(保留子路径)

你的现有规则无法保留子路径,原因是直接跳转到新域名的根目录,没有携带原请求的路径信息。要解决这个问题,只需对规则做两处关键修改:

  • 明确设置重定向类型为301永久重定向
  • 在新域名后拼接原请求的子路径

修正后的完整配置

<rule name="Redirect" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" ignoreCase="false" />
    <action type="Redirect" url="https://opoura.com{R:0}" redirectType="Permanent" />                
</rule>

核心改动解释

  • redirectType="Permanent":IIS默认的重定向类型是302临时重定向,添加此属性可明确指定为301,让搜索引擎和浏览器知晓这是永久迁移
  • {R:0}:在Wildcard匹配模式下,该变量代表匹配到的完整URL路径(例如原请求是/contact,{R:0}就对应/contact),将其拼接在新域名后即可完整保留子路径

备选方案:正则表达式模式

如果你习惯使用正则表达式匹配,可将规则修改为以下形式:

<rule name="Redirect" patternSyntax="ECMAScript" stopProcessing="true">
    <match url="(.*)" ignoreCase="false" />
    <action type="Redirect" url="https://opoura.com/{R:1}" redirectType="Permanent" />                
</rule>

这里(.*)会匹配所有子路径内容,{R:1}则提取出匹配到的路径部分,实现和Wildcard模式一样的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:06:01