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

Windows IIS ARR反向代理HTTP头特殊字符编码异常问题

问题根因

Windows Server 2019 搭载的 IIS 10 变更了 HTTP 头的默认编码处理逻辑,和 Windows Server 2012R2 的 IIS 8.5 默认行为不一致:IIS 10 默认不会自动解码请求头中 URL 编码的特殊字符,会直接将编码后的内容转发给后端服务器,因此出现德语特殊字符显示为百分号编码格式的问题。

解决方案

以下两种方案二选一即可,优先推荐第一种全局配置方案,和旧环境行为完全对齐:

方案1:全局调整IIS编码逻辑(对齐2012R2旧环境行为)

使用管理员身份打开命令提示符,执行以下命令:

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -useOriginalURLEncoding:true

也可以直接修改 IIS 全局配置文件C:\Windows\System32\inetsrv\config\applicationHost.config,找到system.webServer/proxy节点,添加/修改属性为useOriginalURLEncoding="true":

<system.webServer>
    <proxy useOriginalURLEncoding="true" />
</system.webServer>

方案2:仅针对自定义认证头单独解码(无全局影响)

如果不想修改全局配置影响其他业务,可以通过URL重写规则仅对X-AUTHENTICATE系列头做解码处理:

  • 打开IIS管理器,定位到ARR反向代理对应的站点,打开「URL重写」功能
  • 点击右侧「查看服务器变量」,添加三个允许修改的服务器变量:HTTP_X_AUTHENTICATE_FAMILYNAME、HTTP_X_AUTHENTICATE_GIVENNAME、HTTP_X_AUTHENTICATE_CN,保存后返回规则列表
  • 新建空白入站规则:
    • 匹配URL:请求路径选择*,匹配所有请求
    • 条件:无需额外配置(如有需要可以限定仅处理携带指定头的请求)
    • 服务器变量:依次添加三个变量,值分别填写{UrlDecode:{HTTP_X_AUTHENTICATE_FAMILYNAME}}、{UrlDecode:{HTTP_X_AUTHENTICATE_GIVENNAME}}、{UrlDecode:{HTTP_X_AUTHENTICATE_CN}},全部勾选「替换现有值」
    • 操作:操作类型选择「无」,勾选「停止处理后续规则」
  • 保存规则即可生效
验证步骤

配置修改完成后,执行iisreset重启IIS服务,重新发起请求后抓包查看ARR转发给后端的请求头,确认X-AUTHENTICATE系列头已经是解码后的正常德文字符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:39:02