如何在Apache 2.2中dynamic设置HTTP头?

似乎这应该很容易,但我无法弄清楚语法。 在Apache中,我想使用现有请求头的值来设置新的请求头。 一些简单的非工作代码说明了我想要做的事情:

RequestHeader set X-Custom-Host-Header "%{HTTP_HOST}e" 

理想情况下,这将在名为“X-Custom-Host-Header”的请求中创build一个包含现有Host头的值的新HTTP头。 但事实并非如此。 也许我需要将现有的头文件复制到环境variables中? (如果是这样,我也不知道该怎么做。)

我觉得我错过了一些明显的东西,但是我已经浏览了Apache文档,但是我无法弄清楚。 谢谢你的帮助。

%{FOOBAR}e应该是一个环境variables,但是HTTP_HOST是一个服务器variables。

如果你真的想这样做,你可以尝试:

 RewriteRule (.*) $1 [E=custom_host:%{HTTP_HOST}] RequestHeader set X-Custom-Host-Header "%{custom_host}e" 

要么

 RewriteCond %{HTTP_HOST} (.*) RewriteRule (.*) $1 [E=custom_host:%1] RequestHeader set X-Custom-Host-Header "%{custom_host}e" 

要么

 SetEnvIf Host (.*) custom_host=$1 RequestHeader set X-Custom-Host-Header "%{custom_host}e" 

所有未经testing。

不知道第一个,但第二个和第三个应该工作。