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

配置URL Rewrite规则实现oldhostname/oldsubfolder重定向遇404问题求助

解决思路及修正方案

1. 确认规则配置位置

你已将oldhostname设为newhostname的DNS别名,所有发往oldhostname的请求最终会落到newhostname服务器上。因此必须把Rewrite规则配置在newhostname对应的IIS站点中,同时要确保该站点已绑定oldhostname主机头——如果未绑定,IIS无法识别请求,会直接返回404。

2. 修正Rewrite规则

现有规则逻辑接近,但需调整细节以覆盖路径匹配场景并避免冗余斜杠:

<rule name="Redirect Old Subfolder to New Host" stopProcessing="true">
  <match url="^oldsubfolder(/.*)?$" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^oldhostname$" />
  </conditions>
  <action type="Redirect" url="https://newhostname{R:1}" redirectType="Permanent" />
</rule>

规则说明:

  • ^oldsubfolder(/.*)?$:匹配以oldsubfolder开头的所有路径,兼容/oldsubfolder和/oldsubfolder/xxx两种格式
  • {R:1}:自动拼接匹配到的后缀路径,原路径为/oldsubfolder/page1时,最终重定向到https://newhostname/page1;原路径为/oldsubfolder时,重定向到https://newhostname

3. 排查404额外诱因

  • 若newhostname站点存在oldsubfolder物理目录,IIS会优先尝试访问目录而非触发规则,需禁用该目录的目录浏览权限,或在规则中添加条件排除物理文件/目录:
    <conditions>
      <add input="{HTTP_HOST}" pattern="^oldhostname$" />
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    
  • 验证URL Rewrite模块是否正确安装:查看IIS管理器站点是否有「URL重写」图标,无则需重新安装模块
  • 查看IIS请求日志:确认请求的Host头、URL路径是否符合预期,判断规则是否被触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:27:16