IIS中URL改写跳转问题:旧路径转新路径仅首页生效如何解决
操作步骤
- 修正入站301重定向规则
你之前的重定向规则仅匹配了根路径,未覆盖子路径,按以下参数调整:
- 匹配模式填正则:
^oldname/(.*)(注意你问题里提到的olname是笔误,配置时统一用真实的旧路径名) - 操作类型选「重定向」
- 重定向URL填:
/newname/{R:1} - 勾选「附加查询字符串」,重定向状态码选301永久重定向
- 修正入站重写规则
同样扩大重写的匹配范围,参数如下:
- 匹配模式填正则:
^newname/(.*) - 操作类型选「重写」
- 重写目标填:
/oldname/{R:1} - 勾选「附加查询字符串」
- 处理站内硬编码旧链接
你点击站内链接跳转后回到旧URL,是因为网站代码内的链接还是硬编码的/oldname/前缀,两种解决方式可选:
- 优先直接修改全站代码,把所有链接的
/oldname/前缀替换为/newname/,性能最高没有额外开销 - 如果暂时无法修改代码,可新增IIS出站规则:匹配响应内容中a标签的href属性值,将
/oldname/(.*)批量替换为/newname/{R:1},返回给浏览器的页面会自动完成链接替换,用户点击就不会触发旧URL跳转
内容的提问来源于stack exchange,提问作者David Folksman
相关产品推荐
相关产品推荐

