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

IIS Rewrite规则首次正常后续触发404错误求助

解决OHIF与Orthanc集成时IIS反向代理后续请求404问题

针对你遇到的IIS反向代理Orthanc首次请求正常、后续触发404的问题,可从以下几个方向排查修复:

1. 修正Orthanc的RootUrl与跨域配置

Orthanc默认返回自身端口地址,会导致前端后续请求直接访问127.0.0.1:8042而非代理路径。需修改Orthanc配置文件(通常为orthanc.json):

{
  "RootUrl": "http://你的IIS域名/orthancserver/",
  "RemoteAccessAllowedOrigins": ["http://你的IIS域名"],
  "DicomWeb": {
    "Enable": true
  }
}

修改后重启Orthanc服务。

2. 添加IIS出站重写规则修正响应内容

Orthanc返回的HTML或API响应中会包含自身原始地址,需通过出站规则替换为代理路径。在IIS重写规则的<rewrite>节点下添加出站规则:

<outboundRules>
    <rule name="ReplaceOrthancBaseUrl" preCondition="IsHtmlOrJsonResponse">
        <match filterByTags="None" pattern="http://127.0.0.1:8042/(.*)" />
        <action type="Rewrite" value="/orthancserver/{R:1}" />
    </rule>
    <preConditions>
        <preCondition name="IsHtmlOrJsonResponse">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^(text/html|application/json)" />
        </preCondition>
    </preConditions>
</outboundRules>

该规则会将响应内容中所有127.0.0.1:8042开头的地址替换为代理路径/orthancserver/,确保前端后续请求走IIS代理。

3. 验证IIS ARR代理配置

确保Application Request Routing (ARR)已正确安装并启用:

  • 打开IIS管理器,在服务器节点下点击Application Request Routing Cache
  • 选择右侧的Server Proxy Settings,勾选Enable proxy
  • 确认Reverse rewrite host in response headers选项已开启,该选项会自动修正响应头中的Host字段

4. 检查OHIF的服务配置

确保OHIF的配置文件(如config.js)指向代理后的Orthanc路径,示例配置:

window.config = {
    routerBasename: '/', // 若OHIF部署在IIS子应用,需改为对应子路径,如'/ohif/'
    servers: [
        {
            name: 'Orthanc',
            wadoUriRoot: '/orthancserver/wado',
            qidoRoot: '/orthancserver/dicom-web',
            wadoRoot: '/orthancserver/dicom-web',
            qidoSupportsIncludeField: true,
            imageRendering: 'wadors',
            thumbnailRendering: 'wadors',
        }
    ]
};

完成上述配置后,重启IIS和Orthanc服务,测试后续请求是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:05:22