mod_rewrite и переменные среды сервера - PullRequest
0 голосов
/ 07 октября 2010

У меня есть следующие настройки:

У меня есть один сервер Apache, выполняющий роль механизма перезаписи URL (SERVER1).

У меня есть второй сервер (тоже Apache), который запускает веб-приложение (SERVER2).Сначала пытается аутентифицировать пользователей.Часть протокола аутентификации включает в себя большое перенаправление между этим сервером приложений и сервером аутентификации.

Моя проблема заключается в том, что после успешного завершения аутентификации серверу аутентификации необходимо перенаправить пользователя обратно на сервер приложений, который виден только с SERVER1.По сути, SERVER2 должен иметь возможность восстанавливать URL на основе параметров SERVER1.

Большинство переменных environement являются полезными, т. Е. Я знаю имя хоста, имя скрипта, страницу с именем etcc, но не могу понять, был ли вызов сделан через HTTP или HTTPS: эта информация стирается при перезаписипроцесс по SERVER1 ...

Кто-нибудь знает, если / как я могу получить эту информацию через переменные окружения?Я ограничен в том, что не могу использовать параметры строки запроса ...

Спасибо всем!

1 Ответ

1 голос
/ 08 октября 2010

Это может звучать странно, но я нашел часть ответа на свой вопрос.

Механизм перезаписи (по крайней мере, в Apache 2, я нигде больше не смотрел) позволяет писать дополнительный заголовок запроса..

Правило должно выглядеть примерно так.

RewriteRule. * - [E = INFO_PATH_INFO:% {PATH_INFO}, NE]

Putпросто, он создает новый заголовок с именем INFO_PATH_INFO и устанавливает значение PATH_INFO.(Для получения дополнительной информации проверьте http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html)

Затем его можно получить на любом языке.Для информации я использую Oracle OWA, который добавляет дополнительный уровень сложности из-за того, что переменные среды по умолчанию ограничены несколькими, и дополнительные переменные должны быть указаны в thr dads.conf

Надеюсь, это поможеткто угодно!

...