0

我有以下配置。我正在尝试使用我在重写规则中提取的值设置一个 cookie。但是 cookie 的值始终设置为 null。是正则表达式的问题还是我在这里做错了什么。我对 apache httpd 完全陌生。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)uname=(.*)
RewriteRule ^/(.*)&uname=(.*)$ /$1 [env=GRAFANA_UNAME:%2,L,PT]

RewriteCond %{HTTP_COOKIE} uname=(.*)
RewriteRule ^(.*)$ "-" [env=GRAFANA_UNAME:%1,L,PT]

RequestHeader set X-WEBAUTH-USER %{GRAFANA_UNAME}e

RequestHeader unset Authorization

ProxyRequests Off
ProxyPass "/" http://localhost:3000/
ProxyPassReverse "/" http://localhost:3000/

Header always set Set-Cookie "uname=%{GRAFANA_UNAME}e;path=/;HttpOnly"

当我执行 uname=%{GRAFANA_UNAME}e 时,cookie 值始终设置为 null。如何在响应标头中获取 uname 的值。

4

1 回答 1

0

您的规则暗示这些指令不在 htaccess 中,但我的假设是内部重定向仍然发生在您的请求被真正处理之前。

尝试访问 REDIRECT_GRAFANA_UNAME。每次发生内部重定向时都会添加该前缀,以区分当前请求和先前请求的环境。

于 2018-08-16T14:16:39.363 回答