Я запускаю Apache 2.2 с Tomcat 6 и имею несколько уровней перезаписи URL как в Apache с RewriteRule, так и в Tomcat. Я хочу передать исходный REQUEST_URI, который видит Apache, чтобы я мог правильно регистрировать его для ошибок «страница не найдена» и т. Д.
В httpd.conf у меня есть строка:
SetEnv ORIG_URL %{REQUEST_URI}
и в mod_jk.conf у меня есть:
JkEnvVar ORIG_URL
Я думал, что значение должно быть доступно через request.getAttribute("ORIG_URL")
в сервлетах.
Однако все, что я вижу, это "%{REQUEST_URI}"
, поэтому я предполагаю, что SetEnv не интерпретирует %{...}
синтаксис. Как правильно получить URL-адрес, запрошенный пользователем в Tomcat?
Использование:
RewriteRule (.*) - [E=ORIG_URL:$1]
Использовать getRequestURI()
и getRequestURL()
(и, возможно, getQueryString()
) методы HttpServletRequest
класс.