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

基于IIS实现反向代理以隐藏URI路径并解决图片加载问题

解决IIS反向代理隐藏子路径并修复静态资源加载问题

首先,你的核心问题是反向代理时既要隐藏/site1路径,又要让站点能正确找到位于根目录/moduls下的静态资源。下面是一套完整的URL Rewrite规则配置方案,结合ARR来实现需求:

1. 先确认ARR和URL Rewrite的基础配置

  • 确保ARR的代理功能已开启:在IIS管理器的服务器级别,找到Application Request Routing Cache → 进入服务器代理设置 → 勾选「启用代理」
  • 确认URL Rewrite模块已安装到目标站点(globalsite1)的级别

2. 创建两条URL Rewrite规则

你需要两条规则配合:一条处理主站点的路径代理(隐藏/site1),另一条专门处理静态资源的转发(指向localsite/moduls)

规则1:主路径反向代理(隐藏/site1)

这条规则会把http://globalsite1/{*}的请求转发到http://localsite/site1/{*},同时排除静态资源路径:

  1. 打开globalsite1站点的URL Rewrite模块,点击「添加规则」→ 选择「空白规则」
  2. 配置参数:
    • 名称:Proxy to localsite/site1
    • 匹配URL:
      • 请求路径:Matches the Pattern
      • 使用:Regular Expressions
      • 模式:(.*)
      • 忽略大小写:勾选
    • 条件:
      • 添加条件:输入{REQUEST_URI},模式填^/moduls/.*,逻辑分组选Match All,勾选「否定」(意思是排除所有/moduls开头的请求)
    • 操作:
      • 操作类型:Rewrite
      • 重写URL:http://localsite/site1/{R:1}
      • 追加查询字符串:勾选
      • 停止处理后续规则:勾选

规则2:静态资源代理(指向localsite/moduls)

这条规则专门处理图片等静态资源,把http://globalsite1/moduls/{*}直接转发到http://localsite/moduls/{*}:

  1. 再次添加空白规则
  2. 配置参数:
    • 名称:Proxy to localsite/moduls
    • 匹配URL:
      • 请求路径:Matches the Pattern
      • 使用:Regular Expressions
      • 模式:^moduls/(.*)
      • 忽略大小写:勾选
    • 操作:
      • 操作类型:Rewrite
      • 重写URL:http://localsite/moduls/{R:1}
      • 追加查询字符串:勾选
      • 停止处理后续规则:勾选

3. 调整规则顺序

一定要把静态资源规则排在主路径规则的前面,这样请求会优先匹配静态资源规则,避免被主路径规则错误拦截。

4. 额外适配场景(可选)

如果你的站点里有相对路径引用资源(比如<img src="../moduls/img.jpg">),可能需要添加一条出站规则来修正响应中的URL:

  • 操作类型选Rewrite,匹配范围选Response
  • 匹配内容选Contains,模式填/site1/moduls/(.*)
  • 重写值填/moduls/{R:1}

测试时可以开启URL Rewrite的日志功能,查看请求的匹配情况,方便快速排查问题。

这样配置后,用户访问http://globalsite1时会代理到http://localsite/site1,访问http://globalsite1/moduls/xxx.jpg时会直接指向http://localsite/moduls/xxx.jpg,图片就能正常加载了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:59:12