gpt4 book ai didi

php - Apache 2.4 中删除了所有带下划线的大写 HTTP header

转载 作者:可可西里 更新时间:2023-11-01 16:30:38 28 4
gpt4 key购买 nike

我有一个应用依赖于发送全部大写带下划线的 HTTP header 和请求。

Apache 2.4 开头,

Headers containing invalid characters (including underscores) are now silently dropped

This page建议您可以更改一些设置,这些设置将允许未剥离的旧 HTTP header (即,如果它们在 CURL 中设置,那么它们将显示在 PHP 的 $_SERVER 数组中)但它没有说明如何。我尝试将以下内容添加到我的 HTACCESS 文件中,

SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding

但似乎并没有什么用。从 Apache 2.2 迁移到 2.4 时,还有其他人遇到过这种情况吗?

最佳答案

我有同样的问题,我的 REST api 需要两个自定义 header 进行身份验证,CCS_USERNAME 和 CCS_AUTHENTICATION。升级到 Apache 2.4 后,在 $_SERVER 数组中找不到 header 。

我不得不按照以下方式修改我的 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

两个自定义 header 现在都出现在 $_SERVER 数组中。请注意,每个单独的自定义 header 都必须有自己的条目,并且您必须为每个 header 使用不同的名称。

关于php - Apache 2.4 中删除了所有带下划线的大写 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17440564/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com