【问题标题】:How to pass Header with underscore in Server Variable IIS URL Rewrite?如何在服务器变量 IIS URL 重写中传递带有下划线的标头?
【发布时间】:2017-01-17 05:33:08
【问题描述】:

我正在将我的网站重写为 diff url,我必须传递标题。

所以一切都很好。但是一个标题名称带有下划线(_)。

    <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>  

所有下划线(电话号码)都会转换成连字符(电话号码),所以需要的标头没有通过。

我必须传递电话号码

请帮帮我。

【问题讨论】:

    标签: asp.net iis url-rewriting iis-7 reverse-proxy


    【解决方案1】:

    我终于找到了答案。我必须像 HEADER_phone_number 一样通过。

    refer 了解更多详情。

    HEADER_HeaderName(IIS 5.1 及更早版本:此服务器变量不可用):

    存储在标头中的值。除此表中列出的标头之外的任何标头必须以“HEADER_”开头,以便 ServerVariables 集合检索其值。这对于检索自定义标头很有用。 笔记: 与 HTTP_ 不同,HEADER_ 中的所有字符都按原样解释。例如,如果您指定 HEADER_MY_HEADER,则服务器会搜索名为 MY_HEADER 的请求标头。

    HTTP_HeaderName :

    存储在标头中的值。除此表中列出的标头之外的任何标头都必须以“HTTP_”开头,以便 ServerVariables 集合检索其值。这对于检索自定义标头很有用。 笔记: 服务器将任何下划线 (_) 字符解释为实际标题中的破折号。例如,如果您指定 HTTP_MY_HEADER,则服务器会搜索名为 MY-HEADER 的请求标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2016-07-30
      • 2023-03-19
      相关资源
      最近更新 更多