如何在服务器变量 IIS URL 重写中传递带下划线的 Header?
How to pass Header with underscore in Server Variable IIS URL Rewrite?
我正在将我的站点重写为 diff url,我必须通过 header。
所以一切都很好。但是一个 header 名字有下划线 (_).
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule2" patternSyntax="Wildcard" stopProcessing="false">
<match url="*core*" />
<action type="Rewrite" url="http://xxxxxxx/yyyyy/core{R:2}" logRewrittenUrl="true" />
<serverVariables>
<set name="HTTP_name" value="name" />
<set name="HTTP_address" value="address" />
<set name="HTTP_phone_number" value="1234567890" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
所有下划线(phone_number)都会转换为连字符(phone-number),所以要求的header没有通过。
我必须通过phone_number
请帮我解决这个问题。
终于找到答案了。我必须通过 HEADER_phone_number .
请refer 了解更多详情。
HEADER_HeaderName(IIS 5.1 及更早版本:此服务器变量不可用):
存储在 header 中的值。除了在此 table 中列出的那些之外的任何 header 必须以 "HEADER_" 开头,以便 ServerVariables collection 检索其值。这对于检索自定义 header 很有用。
笔记:
与 HTTP_ 不同,HEADER_ 中的所有字符都被解释为 as-is。例如,如果您指定 HEADER_MY_HEADER,服务器将搜索名为 MY_HEADER.
的请求 header
HTTP_HeaderName :
存储在 header 中的值。除了在此 table 中列出的那些之外的任何 header 必须以 "HTTP_" 开头,以便 ServerVariables collection 检索其值。这对于检索自定义 header 很有用。
笔记:
服务器将任何下划线 (_) 字符解释为实际 header 中的破折号。例如,如果您指定 HTTP_MY_HEADER,服务器将搜索名为 MY-HEADER.
的请求 header
我正在将我的站点重写为 diff url,我必须通过 header。
所以一切都很好。但是一个 header 名字有下划线 (_).
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule2" patternSyntax="Wildcard" stopProcessing="false">
<match url="*core*" />
<action type="Rewrite" url="http://xxxxxxx/yyyyy/core{R:2}" logRewrittenUrl="true" />
<serverVariables>
<set name="HTTP_name" value="name" />
<set name="HTTP_address" value="address" />
<set name="HTTP_phone_number" value="1234567890" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
所有下划线(phone_number)都会转换为连字符(phone-number),所以要求的header没有通过。
我必须通过phone_number
请帮我解决这个问题。
终于找到答案了。我必须通过 HEADER_phone_number .
请refer 了解更多详情。
HEADER_HeaderName(IIS 5.1 及更早版本:此服务器变量不可用):
存储在 header 中的值。除了在此 table 中列出的那些之外的任何 header 必须以 "HEADER_" 开头,以便 ServerVariables collection 检索其值。这对于检索自定义 header 很有用。 笔记: 与 HTTP_ 不同,HEADER_ 中的所有字符都被解释为 as-is。例如,如果您指定 HEADER_MY_HEADER,服务器将搜索名为 MY_HEADER.
的请求 headerHTTP_HeaderName :
存储在 header 中的值。除了在此 table 中列出的那些之外的任何 header 必须以 "HTTP_" 开头,以便 ServerVariables collection 检索其值。这对于检索自定义 header 很有用。 笔记: 服务器将任何下划线 (_) 字符解释为实际 header 中的破折号。例如,如果您指定 HTTP_MY_HEADER,服务器将搜索名为 MY-HEADER.
的请求 header