我有一个应用程序依赖于发送全部大写加下划线的 HTTP 标头以及请求。
从...开始阿帕奇2.4,
包含无效字符(包括下划线)的标题现在
默默地落下
这一页建议您可以更改一些设置,以允许不删除旧的 HTTP 标头(即,如果它们在 CURL 中设置,那么它们将显示在 PHP 中的 $_SERVER 数组中),但它没有说明如何操作。我尝试将以下内容添加到我的 HTACCESS 文件中,
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader 设置 Accept-Encoding %{fix_accept_encoding}e
env=fix_accept_encoding
但这似乎没有帮助。有其他人在从 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 数组中。请注意,每个单独的自定义标头都必须有自己的条目,并且您必须为每个标头使用不同的名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)