我的目标是在代理到另一个网址之前获取原始请求网址。我正在将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
。
我是否有配置错误?
答案 0 :(得分:0)
%{REQUEST_URI} e对于mod_headers中的内部var查找内容不可用,因为它并不总是设置,并且当它被设置时,它在请求处理中设置得太晚。
使用表达式的expr =“%{REQUEST_URI}”代替。它知道如何回答没有相同名称的环境变量的依赖。