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

如何在Web.config中配置URL重定向以去除多余斜杠?

解决IIS URL重定向中查询字符串前的多余斜杠问题

问题分析

你的规则在处理/users?text=smith时,^users(.*)会匹配到users,此时{R:1}为空字符串,重定向URL变为candidates。但IIS URL重写模块可能因原URL无后缀路径,自动在candidates和查询字符串之间添加斜杠(尤其当candidates是实际存在的目录时),导致出现/candidates/?text=smith的结果。

解决方案

方案1:拆分规则(清晰直观)

分别处理无路径后缀和带路径后缀的两种场景:

<!-- 处理不带路径的 /users?xxx 重定向 -->
<rule name="Redirect Users Root to Candidates" stopProcessing="true">
  <match url="^users$" />
  <action type="Redirect" url="candidates" />
</rule>

<!-- 处理带路径的 /users/xxx 重定向 -->
<rule name="Redirect Users Path to Candidates" stopProcessing="true">
  <match url="^users/(.*)$" />
  <action type="Redirect" url="candidates/{R:1}" />
</rule>

方案2:优化单个正则规则(简洁高效)

调整匹配模式,明确处理users后的可选斜杠,避免空匹配导致的斜杠问题:

<rule name="Redirect Users to Candidates" stopProcessing="true">
  <match url="^users(/?.*)$" />
  <action type="Redirect" url="candidates{R:1}" />
</rule>

验证效果

  • 访问/users?text=smith会重定向到/candidates?text=smith(无多余斜杠)
  • 访问/users/A123456会重定向到/candidates/A123456(正常保留路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:57:20