繁体   English   中英

如何在服务器变量IIS URL重写中用下划线传递标头?

[英]How to pass Header with underscore in Server Variable IIS URL Rewrite?

我正在将我的网站重写为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>  

所有下划线(phone_number)将转换为连字符(phone-number),因此未传递所需的标头。

我必须通过phone_number

请帮我。

终于我找到了答案。 我必须像HEADER_phone_number一样传递。

参阅更多详细信息。

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

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

HTTP_HeaderName:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM