我使用Tomcat 6运行Apache 2.2,并在Apache和RewriteRule以及Tomcat中都有几个URL重写层。 我想通过Apache看到的原始REQUEST_URI,以便我可以正确logging“页面未find”错误等。
在httpd.conf中有一行:
SetEnv ORIG_URL %{REQUEST_URI}
并在mod_jk.conf中,我有:
JkEnvVar ORIG_URL
我认为应该通过Servlet中的request.getAttribute("ORIG_URL")使值可用。
不过,我看到的只是"%{REQUEST_URI}" ,所以我假设SetEnv不会解释%{...}语法。 什么是正确的方式来获取用户在Tomcat中请求的URL?
使用:
RewriteRule (.*) - [E=ORIG_URL:$1]
使用HttpServletRequest类的getRequestURI()和getRequestURL() (也可能是getQueryString() )方法。