Назад | Перейти на главную страницу

Могу ли я сохранить значение переменной среды Apache с помощью SetEnv?

Я запускаю 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 класс.