Apache "RequestHeader set" 不适用于带下划线的 header

Apache "RequestHeader set" does not work on header with underscore

在遗留应用程序中,我们必须使用类似于“Drupal_NNI”的 http header。 由于我们刚刚迁移到最新版本的 Apache,这个 header 甚至都无法识别,所以我找到了一个技巧,仍然使用下划线,但在被 apache 捕获时将其更改为破折号:

RequestHeader set drupal-nni "expr=%{req:Drupal_NNI}"

我的问题是它在我的 Xampp 3.3 上运行良好,但在装有 apache 2.4.46 的服务器上它不再运行,尽管它在我为第一次.

header "Drupal_NNI" 并没有改成 "drupal-nni",只有当 header 包含下划线时才会出现这个问题,我可以重新设置任何其他 header。这适用于例如:

RequestHeader set doe "expr=%{req:john}"

我找到了解决方案,多亏了这个post:

我只需要在我的之前添加这一行:

SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=