Apache - 在 headers 中将下划线转换为破折号
Apache - Convert underscores to dashes in headers
在一个项目中,必须 运行 CA Webagent Siteminder 向我发送带下划线的遗留 headers。由于 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
在您的虚拟主机配置中:
SetEnvIfNoCase ^OAM.REMOTE.USER$ ^(.*)$ fix_accept_encoding=
RequestHeader set OAM-REMOTE-USER %{fix_accept_encoding}e env=fix_accept_encoding
如果您使用 mod_wsgi Django 或 Flask,您需要添加:
WSGIPassAuthorization On
这里有两个选择:
-
#
# The following works around a client sending a broken Accept_Encoding
# header.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
-
#its not explicitly stated but im assuming this should be in your WebAgent.conf file
LegacyVariables="NO"
编辑:
我知道这并没有直接回答您从 _ 转换为 - 的问题,但它是一个有助于缓解 Apache 2.4 与 CA Siteminder header 问题的答案。
在一个项目中,必须 运行 CA Webagent Siteminder 向我发送带下划线的遗留 headers。由于 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
在您的虚拟主机配置中:
SetEnvIfNoCase ^OAM.REMOTE.USER$ ^(.*)$ fix_accept_encoding=
RequestHeader set OAM-REMOTE-USER %{fix_accept_encoding}e env=fix_accept_encoding
如果您使用 mod_wsgi Django 或 Flask,您需要添加:
WSGIPassAuthorization On
这里有两个选择:
-
# # The following works around a client sending a broken Accept_Encoding # header. # SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding= RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
-
#its not explicitly stated but im assuming this should be in your WebAgent.conf file LegacyVariables="NO"
编辑:
我知道这并没有直接回答您从 _ 转换为 - 的问题,但它是一个有助于缓解 Apache 2.4 与 CA Siteminder header 问题的答案。