在 Apache 中重命名 HTTP 标头

问题描述 投票:0回答:1

我想将

Authorization
标头的值设置为与
CustomAuthorization
标头的值相同。或者换句话说,重命名标题。根据文档,听起来我应该能够这样做:

RequestHeader set Authorization %{HTTP:CustomAuthorization}

但这会产生错误:

# apachectl configtest
AH00526: Syntax error on line 7 of /etc/apache2/sites-enabled/01-netbox.conf:
Unrecognized header format %

如果我将其设置为如下所示的静态值,它就会起作用:

RequestHeader set Authorization foo

我正在使用 Apache/2.4.52 (Ubuntu)

apache
1个回答
0
投票

您遇到的错误是因为 Apache 2.4 的 RequestHeader 指令不支持

%{HTTP:CustomAuthorization}
语法。要实现将 Authorization 标头的值设置为与 CustomAuthorization 标头的值相同的预期结果,您可以改用 mod_rewrite 模块。

这是如何使用 mod_rewrite 重写标头的示例:

阿帕奇 复制

RewriteEngine On RewriteCond %{HTTP:CustomAuthorization} ^(.*) RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]

此代码片段将捕获 CustomAuthorization 标头的值并将其分配给 HTTP_AUTHORIZATION 环境变量。 Apache 使用 HTTP_AUTHORIZATION 环境变量来设置授权标头的值。

将此代码片段放入 Apache 配置文件(例如 01-netbox.conf)中适当的上下文(例如 或 )中。确保通过运行 a2enmod rewrite 启用 mod_rewrite 模块,然后重新启动 Apache 以使更改生效。

实现此配置后,Authorization 标头的值应与传入请求中 CustomAuthorization 标头的值相同。

请注意,如果您使用不同的 Apache 版本或有任何特定的配置要求,上述解决方案可能需要相应调整。

© www.soinside.com 2019 - 2024. All rights reserved.