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

IIS 10 Rewrite Rule末尾多斜杠及子目录重定向问题求助

IIS 10 重定向规则修复方案

问题原因分析

1. 多余末尾斜杠

规则顺序错误:原配置先执行「添加末尾斜杠」规则且设置了stopProcessing="true",导致访问/oldfolder时,先被强制添加斜杠变为/oldfolder/,随后重定向规则捕获到oldfolder(.*)中的R:2为/,拼接后出现newfolder//。

2. 子目录请求未被捕获

部分子目录请求被「添加末尾斜杠」规则拦截(因stopProcessing="true"),无法进入重定向规则;同时原重定向规则的匹配逻辑未覆盖带斜杠的子目录场景,导致部分请求未触发重定向。

修复后的Web.config配置

<rewrite>
  <rules>
    <!-- 优先处理oldfolder到newfolder的重定向 -->
    <rule name="Redirect oldfolder to newfolder" stopProcessing="false">
      <match url="^oldfolder(/?.*)$" ignoreCase="true" />
      <action type="Redirect" url="https://www.example.com/newfolder{R:1}" redirectType="Permanent" appendQueryString="true" />
    </rule>

    <!-- 统一为非文件/目录的请求添加末尾斜杠 -->
    <rule name="Add trailing slash" stopProcessing="true">
      <match url="(.*[^/])$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_METHOD}" matchType="Pattern" negate="true" ignoreCase="true" pattern="POST" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="{R:1}/" />
    </rule>
  </rules>
</rewrite>

关键修改说明

  1. 调整规则顺序:将重定向规则放在最前面,确保所有oldfolder相关请求先被转至newfolder,再由后续规则统一处理末尾斜杠,从根源避免双斜杠。
  2. 优化重定向规则匹配模式:使用^oldfolder(/?.*)$,覆盖所有以oldfolder开头的请求(带/不带斜杠、包含子目录):
    • 匹配oldfolder(无斜杠):R:1为空,重定向到newfolder
    • 匹配oldfolder/(带斜杠):R:1为/,重定向到newfolder/
    • 匹配oldfolder/subfolder或oldfolder/subfolder/:R:1为/subfolder或/subfolder/,重定向到对应newfolder路径
  3. 修改重定向规则的stopProcessing:设为false,让重定向后的请求继续执行「添加末尾斜杠」规则,确保所有目标URL末尾带斜杠。
  4. 保留原斜杠规则条件:仅对非文件、非目录、非POST请求添加斜杠,避免与实际文件/目录的访问冲突。

测试验证

  • 访问https://www.example.com/oldfolder → 先重定向到https://www.example.com/newfolder,再补斜杠为https://www.example.com/newfolder/(无多余斜杠)
  • 访问https://www.example.com/oldfolder/subfolder → 重定向到https://www.example.com/newfolder/subfolder/
  • 访问https://www.example.com/oldfolder/subfolder/ → 直接重定向到https://www.example.com/newfolder/subfolder/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:45:48