mod_rewrite和服务器环境变量

时间:2010-10-07 17:16:54

标签: mod-rewrite https apache2 outlook-web-app

我的设置如下:

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

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

我的问题是,一旦验证成功,验证服务器需要将用户重定向回应用程序服务器,该服务器只能从SERVER1中看到。实际上,SERVER2需要能够根据SERVER1的参数重建URL。

大多数environement变量都很有帮助,即我知道主机名,脚本名称,名为etcc的页面,但我无法弄清楚是通过HTTP还是HTTPS进行调用:SERVER1在重写过程中擦除了这些信息...

有人知道我是否可以通过environement变量获取这些信息?我受限制,我不能使用查询字符串参数......

全部谢谢!

1 个答案:

答案 0 :(得分: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,由于默认环境变量仅限于少数并且需要在thr dads.conf中指定其他变量,因此会增加额外的复杂层。

希望这对任何人都有帮助!