来自Apache Web Server的REQUEST_URI的空值

时间:2015-08-03 21:33:06

标签: apache mod-proxy

我的目标是在代理到另一个网址之前获取原始请求网址。我正在将Apache Http Server 2.4与Jetty结合使用。我正在我的httpd.conf文件中创建一个名为X-Forwarded-Uri的自定义标头,它为我提供了原始请求URI。

<VirtualHost *:80>
   ...

   RequestHeader set X-Forwarded-Uri %{REQUEST_URI}e

   ProxyPass /foo http://localhost:8080/foo
   ProxyPassReverse /foo http://localhost:8080/foo

   ...
</VirtualHost>

但是,当我向http://localhost/foo发出请求并尝试从我的服务器端代码中检索X-Forwarded-Uri的值时,我一直回到null。请求URI应该是主机名和端口号之后的路径。由于我提供的是/foo,我希望能够找回/foo

我是否有配置错误?

1 个答案:

答案 0 :(得分:0)

%{REQUEST_URI} e对于mod_headers中的内部var查找内容不可用,因为它并不总是设置,并且当它被设置时,它在请求处理中设置得太晚。

使用表达式的expr =“%{REQUEST_URI}”代替。它知道如何回答没有相同名称的环境变量的依赖。