Apache - 将下划线转换为标题中的破折号
Posted
技术标签:
【中文标题】Apache - 将下划线转换为标题中的破折号【英文标题】:Apache - Convert underscores to dashes in headers 【发布时间】:2017-08-18 01:47:19 【问题描述】:在一个项目中,必须运行 CA Webagent Siteminder,它会向我发送带有下划线的旧标头。由于 Apache 2.4 下划线已被弃用并被静默删除。
我需要一个通过mod_headers
的解决方法,它将request-header 中的所有下划线_
转换为破折号-
。
之前
legacy_header_one
legacy_header_two
legacy_header_three
之后
legacy-header-one
legacy-header-two
legacy-header-three
【问题讨论】:
您是要转换标头名称还是标头值或两者兼而有之? 我要转换names
【参考方案1】:
你有两个选择:
Apache Bypass
#
# The following works around a client sending a broken Accept_Encoding
# header.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %fix_accept_encodinge env=fix_accept_encoding
Siteminder Bypass
#its not explicitly stated but im assuming this should be in your WebAgent.conf file
LegacyVariables="NO"
编辑:
我知道这并不能直接回答您从 _ 转换为 - 的问题,但它可以帮助缓解 Apache 2.4 与 CA Siteminder 标头问题。
【讨论】:
【参考方案2】:在您的虚拟主机配置中:
SetEnvIfNoCase ^OAM.REMOTE.USER$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set OAM-REMOTE-USER %fix_accept_encodinge env=fix_accept_encoding
如果您在 Django 或 Flask 中使用 mod_wsgi,则需要添加:
WSGIPassAuthorization On
【讨论】:
这只会将一个特定的标头变量转换为小写,不是吗?以上是关于Apache - 将下划线转换为标题中的破折号的主要内容,如果未能解决你的问题,请参考以下文章