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

请求编写IIS Rewrite规则:URL不变指向/pub/src/目录文件

IIS Rewrite规则修正方案

原规则存在两个核心问题:

  • 条件{REQUEST_FILENAME}匹配的是根目录下的物理文件,而实际文件存放在/pub/src/,导致带子路径的ASP请求(如/login/index.asp)因根目录无对应文件而不触发规则,返回404
  • 未匹配根路径(空URL)的情况,默认文档无法生效

修正后的完整规则

<rule name="RewriteRootToSrc" stopProcessing="true">
    <match url="^$" />
    <action type="Rewrite" url="/pub/src/index.asp" />
</rule>
<rule name="RewriteAllASPFiles" stopProcessing="true">
    <match url="^(.+\.asp)$" />
    <conditions>
        <!-- 检查/pub/src/下的目标文件是否存在,避免无效重写 -->
        <add input="{DOCUMENT_ROOT}/pub/src/{R:1}" matchType="IsFile" />
    </conditions>
    <action type="Rewrite" url="/pub/src/{R:1}" />
</rule>

规则说明

  1. RewriteRootToSrc规则:专门匹配空URL(即根域名直接访问),直接重写到/pub/src/index.asp,满足默认文档的需求
  2. RewriteAllASPFiles规则:
    • 保留原正则^(.+\.asp)$,可以捕获所有带子路径的ASP文件请求
    • 条件修改为检查/pub/src/下的目标文件是否存在,确保只对真实存在的文件执行重写
    • 重写动作指向/pub/src/{R:1},{R:1}会代入捕获到的完整路径+文件名,保证子路径请求正确映射

可选:合并为单一规则

如果希望用一条规则覆盖所有场景,可使用以下配置:

<rule name="RewriteAllToSrc" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <!-- 仅对根路径或ASP文件请求生效 -->
        <add input="{URL}" pattern="^$|.+\.asp$" />
    </conditions>
    <action type="Rewrite" url="/pub/src/{R:1}{R:1=/index.asp}" />
</rule>

合并规则通过条件排除真实存在的文件和目录,仅对根路径或ASP请求生效;重写时若捕获到的路径为空(根访问),自动追加/index.asp,否则直接使用原路径映射到/pub/src/目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:15:05