【问题标题】:mod_rewrite and server environment variablesmod_rewrite 和服务器环境变量
【发布时间】:2011-04-22 11:56:34
【问题描述】:

我的设置如下:

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

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

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

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

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

谢谢大家!

【问题讨论】:

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


    【解决方案1】:

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

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

    规则应该是这样的。

    重写规则 .* - [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 中指定其他变量

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

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2021-11-17
      • 1970-01-01
      • 2018-01-15
      • 2019-06-19
      相关资源
      最近更新 更多