复制cookie以在Apache HTTPD中请求标头

我试图在所有通过Apache HTTPD的请求上设置一个请求头。 该值需要从附加到请求的cookie中获取。 从Apache文档,它看起来像mod_headers可能工作。

从这个页面上的例子,我把它放在一起:

RequestHeader set MyHeaderName "expr=%{req:access_token}" 

其中“access_token”是cookie值的名称。 这确定了标题,但价值是通过空,所以我不认为我有这个expression的权利。

有没有一个expression式可以用来获取cookie值?

我认为expr=%{req:access_token}不会让你的cookie值,但只有一个标题与您的cookie相同的名称。 您可能应该尝试从expr=%{HTTP_COOKIE}找出一些东西,并使用正则expression式提取具体的cookie值。 也许这可以工作(但我不确定正则expression式引用可以用作标题值):

 RequestHeader set MyHeaderName $2 "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/ 

或者这个(首先设置标题,然后编辑它):

 RequestHeader set MyHeaderName "%{HTTP_COOKIE}" "expr=%{HTTP_COOKIE} =~ /(^|;\ *)access_token=([^;\ ]+)/ RequestHeader edit MyHeaderName "(^|;\ *)access_token=([^;\ ]+)" "$2" 

如果这不起作用,您可能需要添加mod_env来做到这一点,也许是这样的:

 SetEnvIf Cookie "(^|;\ *)access_token=([^;\ ]+)" MyCookieValue=$2 RequestHeader set MyHeaderName "%{MyCookieValue}e" 

另请参阅此类似的问题在SO上: https : //stackoverflow.com/questions/22645118/using-mod-header-to-change-cookie-domains