Apache配置读取头值

Apache配置读取头值,apache,header,Apache,Header,有没有办法读取Apache配置中请求头的值?我希望避免进入.htaccess文件,如果可以避免使用setenif,那就更好了。 我试图在这里实施这一建议: 除了使用正则表达式,我真的找不到更多关于这个主题的内容。我要找的是: 标头集名称=%{u不同的\u标头的值\u}% 阅读以下答案: 看来解决办法是: SetEnvIf Origin "http(s)?://(domaine1\.com|domain2\.com)$" AccessControlAllowOrigin=$0 Header alw

有没有办法读取Apache配置中请求头的值?我希望避免进入.htaccess文件,如果可以避免使用setenif,那就更好了。 我试图在这里实施这一建议:

除了使用正则表达式,我真的找不到更多关于这个主题的内容。我要找的是:

标头集名称=%{u不同的\u标头的值\u}%

阅读以下答案:

看来解决办法是:

SetEnvIf Origin "http(s)?://(domaine1\.com|domain2\.com)$" AccessControlAllowOrigin=$0
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
但这与.htaccess无关,您可以将这些行放入常规apache配置文件(virtualhost?)中,而无需使用坏的.htaccess动态配置文件

标头指令的值部分为:

值可以是字符串、包含格式说明符的字符串或两者的组合

但是唯一可用的格式说明符是
%%
(对于
%%
),
%t
用于时间戳,
%D
(idem),
%%{foo}e
%%{foo}s
用于环境变量

setenif
是一个很好的apache工具,用于读取请求头,这里是读取原始头。然后,使用环境变量是在Apache中编写复杂内容的经典方法(我指的是存储某种变量的方法)


因此,我不知道您为什么需要另一种解决方案。

没有setenif,我找不到一种方法来实现这一点,但除了可以使用以下方法复制不同的头之外,我是作为ReverseProxy的一部分来实现的(因此使用RequestHeader而不是header),但这两种方法似乎可以互换

###This reads the value of OldHeader into TempValue
SetEnvIf OldHeader ".+" TempValue=$0

###This will overwrite the value of "NewHeader" if it was already set
RequestHeader set NewHeader %{TempValue}e env=TempValue

###Optionally remove the original
RequestHeader unset OldHeader