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

如何在IIS服务器中为Django RestAPI忽略HTTP_X_ORIGINAL_URL请求头

在IIS中为Django RestAPI忽略HTTP_X_ORIGINAL_URL请求头

要实现当请求包含X_ORIGINAL_URL头时让Django忽略它,你可以通过IIS的URL重写规则清空对应的服务器变量,阻止其传递给Django应用。以下是基于你现有规则的修改方案,以及独立规则的配置方式:

方案一:修改现有入站规则

针对你已有的"set server variables"规则,添加条件检查请求头,并追加清空服务器变量的动作:

修改后的规则配置

ADD Inbound rules
Rule name: "set server variables"
Requested URL: "Matches the Pattern"
Using: "Regular Expressions"
Pattern: "^([a-z]{2}-[a-z]{2})/(.*)"
Conditions:
- Input: "{Languages:{R:1}}"
  Type: "Matches the Patterns"
  Pattern: "(.+)"
- Input: "{HTTP_X_ORIGINAL_URL}"
  Type: "Exists"
  Negate: False
Action:
- Type: "Rewrite"
  Rewrite URL: "{R:2}"
- Type: "Set Server Variable"
  Name: "HTTP_X_ORIGINAL_URL"
  Value: ""
  Replace: True

配置步骤

  1. 打开IIS管理器,定位到目标网站,进入URL重写模块。
  2. 找到"set server variables"规则,点击编辑。
  3. 在条件区域,点击添加,输入{HTTP_X_ORIGINAL_URL},选择类型为"Exists",保持Negate为False。
  4. 在动作区域,点击添加,选择类型为"Set Server Variable",名称填HTTP_X_ORIGINAL_URL,值设为空字符串,勾选"Replace"。
  5. 保存规则后,需要允许修改该服务器变量:
    • 在URL重写模块右侧,点击View Server Variables。
    • 点击Add,输入HTTP_X_ORIGINAL_URL,确认保存。

方案二:添加独立忽略规则

如果不需要依赖原有规则,可单独创建一条规则专门处理X_ORIGINAL_URL头:

规则配置

ADD Inbound rules
Rule name: "Ignore X_ORIGINAL_URL Header"
Requested URL: "Matches the Pattern"
Using: "Regular Expressions"
Pattern: ".*"
Conditions:
- Input: "{HTTP_X_ORIGINAL_URL}"
  Type: "Exists"
  Negate: False
Action:
Type: "Set Server Variable"
Name: "HTTP_X_ORIGINAL_URL"
Value: ""
Replace: True

说明

这条规则会匹配所有包含X_ORIGINAL_URL头的请求,直接将对应的服务器变量清空。Django接收到请求时,将无法读取到该头的内容,从而达到忽略的效果。

配置完成后,用Postman携带X_ORIGINAL_URL头调用API时,IIS会自动处理该头,Django将按实际请求路径处理接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:52:06