我想将
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 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 版本或有任何特定的配置要求,上述解决方案可能需要相应调整。