来自http://httpd.apache.org/docs/current/mod/mod_headers.html
“当且仅当请求中存在标头MyRequestHeader时,才有条件地在响应上发送MyHeader。这对于构建标头以响应某些客户端激励非常有用。请注意,此示例需要mod_setenvif模块的服务。”
SetEnvIf MyRequestHeader myvalue ENV_SET
Header set MyHeader "%D %t mytext" env=ENV_SET
但是从Apache SetEnvIf trouble开始我的测试尝试通过检查授权标头设置环境变量,ENV_SET将不会被设置
SetEnvIf仅为以下设置env变量ENV_SET * 远程主机 * Remote_Addr * Server_Addr * Request_Method * Request_Protocol * Request_URI
文档是错误的还是我误解了什么?
使用:Apache / 2.2.15(Win32)mod_fastcgi / 2.4.6 mod_jk / 1.2.30
答案 0 :(得分:2)
格式为:
SetEnvIf <headername> <regex> <environment variable name and optionally a value>
这对我有用:
SetEnvIf ACTUAL_CLIENT_IP "^172\.111\.0\.27" dontlog
其中ACTUAL_CLIENT_IP
是存储实际客户端IP的HTTP标头的名称(与使用我们的代理服务器的IP覆盖的Remote_Addr字段相反)。