我有一个应用程序,它依赖于在请求中发送全大写带下划线的HTTP头。从Apache 2.4开始,包含无效字符(包括下划线)的标头将被静默丢弃。此页面建议更改设置以允许不被剥离的旧版HTTP头(即,如果它们在CURL中设置,则会显示在PHP中的$ _SERVER数组中),但未说明如何更改。我尝试将以下内容添加到我的HTACCESS文件中,但似乎没有帮助。是否有其他人在从Apache 2.2升级到2.4时遇到过这种情况?
我遇到了同样的问题,我的REST API需要两个自定义头进行身份验证,分别是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数组中。请注意,每个单独的自定义标题都必须有自己的条目,并且您必须使用不同的名称。
我不确定你对计算机的访问权限有多少。但你可以使用PHP来检查模块。
print_r(apache_get_modules());