0

我的设置如下:

我有一个 Apache 服务器充当 URL 重写引擎 (SERVER1)。

我有第二台服务器(Apache 也是),它运行一个 Web 应用程序(SERVER2)。首先尝试对用户进行身份验证。身份验证协议的一部分涉及该应用程序服务器和身份验证服务器之间的大量重定向。

我的问题是,一旦身份验证成功,身份验证服务器需要将用户重定向回应用程序服务器,这仅在 SERVER1 中可见。实际上,SERVER2 需要能够根据 SERVER1 的参数重建 URL。

大多数环境变量很有帮助,即我知道主机名、脚本名、名为 etcc 的页面,但我无法确定调用是通过 HTTP 还是 HTTPS 进行的:该信息在 SERVER1 的重写过程中被擦除...

有人知道我是否/如何通过环境变量获取这些信息吗?我受到限制,因为我不能使用查询字符串参数......

谢谢大家!

4

1 回答 1

1

这听起来可能很奇怪,但我已经找到了我问题的部分答案。

重写引擎(至少在 Apache 2 中,我没有看过其他任何地方)允许编写额外的请求标头。

规则应该看起来像这样。

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

简单地说,它创建了一个名为 INFO_PATH_INFO 的新标头并将值设置为 PATH_INFO。(有关更多信息,请查看http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html

然后可以用任何语言检索它。对于信息,我正在使用 Oracle 的 OWA,它增加了额外的复杂性,因为默认环境变量仅限于几个,并且需要在 dads.conf 中指定其他变量

希望这会帮助任何人!

于 2010-10-08T10:41:38.597 回答