【问题标题】:Null Value for REQUEST_URI from Apache Web Server来自 Apache Web 服务器的 REQUEST_URI 的空值
【发布时间】:2015-08-03 21:33:05
【问题描述】:

我的目标是在代理到另一个 URL 之前获取原始请求 URL。我将 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

我有配置错误吗?

【问题讨论】:

    标签: apache mod-proxy


    【解决方案1】:

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

    改用 expr="%{REQUEST_URI}" 风格的表达式。它知道如何在不依赖同名环境变量的情况下回答这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多