沃梦达 / 编程问答 / php问题 / 正文

Apache2.4中删除的所有带下划线的大写HTTP标头

All caps HTTP headers with underscores dropped in Apache 2.4(Apache2.4中删除的所有带下划线的大写HTTP标头)

本文介绍了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数组中。请注意,每个单独的自定义标头都必须有自己的条目,并且您必须对每个条目使用不同的名称。

这篇关于Apache2.4中删除的所有带下划线的大写HTTP标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Apache2.4中删除的所有带下划线的大写HTTP标头

基础教程推荐