基本上我想做与这个问题相反的事情:在 Apache 中将机器主机名作为标头发送
请求中的标头(例如“OIDC_CLAIM_nickname”)包含主机名。我想将请求代理到 hostname.somedomain.com
我该怎么做呢?
编辑:
这是我尝试过的:
LogFormat "%{OIDC_CLAIM_nickname}i"
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteRule ^ - [E=NICK_NAME:${lowercase:%{OIDC_CLAIM_nickname}}]
ProxyPassInterpolateEnv On
<Location "/">
AuthType openid-connect
Require valid-user
ProxyPass http://${NICK_NAME}.somedomain.com/ interpolate
ProxyPassReverse http://${NICK_NAME}.somedomain.com/ interpolate
</Location>
但它不起作用。在访问日志中,我看到了 OIDC_CLAIM_nickname 标头值,但在错误日志中,我看到 Apache 正在尝试解析“.somedomain.com”,即变量名称为空。
答案1
您需要使用%{HTTP:OIDC_CLAIM_nickname}
来引用 HTTP 标头,而不仅仅是%{OIDC_CLAIM_nickname}
。
并且您不需要使用小写,主机名不区分大小写。