You need to enable JavaScript to run this app. IIS 8.5使用URL Rewrite实现子路径重写指向独立站点配置
优惠活动
大模型
产品
解决方案
定价
更多

IIS 8.5使用URL Rewrite实现子路径重写指向独立站点配置

IIS 8.5 跨独立站点路径重写配置方案

单独使用原生URL Rewrite模块无法实现跨独立站点的无跳转重写,之前配置返回404的本质是Rewrite动作仅支持当前站点上下文内的路径改写,当action中填写不带合法协议头的域名字符串时,模块会将其识别为Test 1站点下的本地相对路径,因此才会生成test1.mydomain.com/test2.mydomain.com/xxx的错误请求路径。
要实现需求,需要搭配应用请求路由(ARR)的反向代理能力,完整配置步骤如下:

前置准备

  • 在IIS服务器上安装应用请求路由模块,安装完成后打开IIS根节点下的「应用请求路由缓存」配置项,勾选「启用代理」选项,保持默认参数即可
  • 确认URL Rewrite模块版本不低于2.0,适配IIS 8.5的运行环境
  • 在IIS站点的服务器变量白名单中,提前允许HTTP_HOST变量的修改权限,避免后续配置触发500.19权限错误

Test 1站点web.config核心配置

将下列配置放到Test 1站点根目录的web.config文件的对应节点下,实现服务器端请求转发与路径匹配:

<system.webServer>
  <rewrite>
    <!-- 入站重写规则:匹配test1.mydomain.com/app下的所有请求,转发到Test 2站点 -->
    <rules>
      <rule name="ForwardAppRequestToTest2" stopProcessing="true">
        <match url="^app(/.*)?$" />
        <conditions>
          <!-- 自动匹配当前站点的http/https协议,避免跨协议请求错误 -->
          <add input="{CACHE_URL}" pattern="^(https?)://" />
        </conditions>
        <action type="Rewrite" url="{C:1}://test2.mydomain.com{R:1}" appendQueryString="true" />
        <!-- 转发时修改请求的Host头为Test 2站点域名,保证Test 2能正确识别站点归属 -->
        <serverVariables>
          <set name="HTTP_HOST" value="test2.mydomain.com" />
        </serverVariables>
      </rule>
    </rules>
    <!-- 出站重写规则:修正Test 2返回内容里的相对路径,保证路径都带/app前缀 -->
    <outboundRules>
      <rule name="AdjustTest2ResponsePaths" preCondition="HtmlResponseCheck">
        <match pattern="^/(.*)$" />
        <action type="Rewrite" value="/app/{R:1}" />
      </rule>
      <preConditions>
        <preCondition name="HtmlResponseCheck">
          <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
        </preCondition>
      </preConditions>
    </outboundRules>
  </rewrite>
  <security>
    <requestFiltering>
      <serverVariables>
        <add name="HTTP_HOST" allowed="true" />
      </serverVariables>
    </requestFiltering>
  </security>
</system.webServer>

配置注意事项

  • 重写目标的URL必须携带完整的协议头(http://或https://),如果只写域名,ARR会依然将其识别为本地相对路径,回到最初的404问题
  • 出站重写规则可以自动修正Test 2返回页面内的相对路径链接、静态资源引用,不需要修改Test 2站点本身的代码,就能保证所有资源请求都带着/app前缀,不会出现资源加载失败的问题
  • 整个转发过程是服务器端完成的,全程不会触发浏览器跳转,地址栏会始终保留用户最初输入的test1.mydomain.com/app路径
  • Test 2站点原有的test2.mydomain.com独立访问能力完全不受影响,无需改动原有配置
  • 配置完成后重启Test 1站点的应用程序池即可生效,不需要重启整个IIS服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 14:45:07