我可以使用 SetEnv 保存 Apache 环境变量值吗?

我可以使用 SetEnv 保存 Apache 环境变量值吗?

我正在运行带有 Tomcat 6 的 Apache 2.2,并且在使用 RewriteRule 的 Apache 和 Tomcat 中都进行了多层 URL 重写。我想传递 Apache 看到的原始 REQUEST_URI,以便我可以正确记录“页面未找到”错误等。

在 httpd.conf 中有一行:

SetEnv ORIG_URL %{REQUEST_URI}

在 mod_jk.conf 中,我有:

JkEnvVar ORIG_URL

request.getAttribute("ORIG_URL")我认为这应该通过Servlet提供该值。

但是,我看到的都是"%{REQUEST_URI}",所以我假设 SetEnv 不解释%{...}语法。在 Tomcat 中获取用户请求的 URL 的正确方法是什么?

答案1

使用:

RewriteRule (.*) - [E=ORIG_URL:$1]

答案2

使用getRequestURI()getRequestURL()(也许还有getQueryString())方法HttpServletRequest班级。

相关内容