Apache2.4中删除的所有带下划线的大写HTTP标头
我有一个应用程序,它依赖于随请求一起发送全大写带下划线的HTTP标头。
以Apache 2.4,
开头包含无效字符(包括下划线)的标头现在 静默丢弃
This page建议您可以更改一些设置,以允许不剥离遗留HTTP标头(即,如果它们设置在cURL中,则它们将显示在PHP中的$_server数组中),但没有说明如何更改。我尝试将以下内容添加到HTACCESS文件
SetEnvIfNoCase^Accept.Encoding$^(.*)$FIX_ACCEPT_ENCODING=$1 RequestHeader设置Accept-Encoding%{FIX_ACCEPT_ENCODING}e 环境=FIX_ACCEPT_ENCODING
但似乎没有什么帮助。从Apache 2.2迁移到2.4时,是否还有其他人经历过这种情况?
解决方案
我也遇到了同样的问题,我的睡觉接口需要两个自定义的Header进行认证,ccs_username和ccs_Authentication。升级到Apache 2.4后,在$_server数组中找不到这两个标头。
我必须通过以下方式修改htaccess文件才能解决此问题。
SetEnvIfNoCase ^CCS.USERNAME$ ^(.*)$ fix_ccs_username=$1
RequestHeader set CCS-USERNAME %{fix_ccs_username}e env=fix_ccs_username
SetEnvIfNoCase ^CCS.AUTHENTICATION$ ^(.*)$ fix_ccs_authentication=$1
RequestHeader set CCS-AUTHENTICATION %{fix_ccs_authentication}e env=fix_ccs_authentication
这两个自定义标头现在都出现在$_SERVER数组中。请注意,每个单独的自定义标头都必须有自己的条目,并且您必须对每个条目使用不同的名称。
相关文章