2017-05-04 33 views
1

我需要根据响应头(而不是请求头)来设置cookie。响应头由SOAP调用设置到后端 - 并且不在apaches控件中。Apache-2.2响应头逻辑上的Set-Cookie

我查看了SetEnvIf,但它声明它只调查请求标头。 mod_rewrite的{HTTP:parm}结构似乎也只适用于请求标头。

  1. 请求在
  2. 响应头即将由后端
  3. Apache的调查作出回应头FooBar的
  4. 阿帕奇添加设置Cookie,如果响应头FooBar的值 “串”

匹配时,产生那里有任何想法?

回答

0

looks like this can be donemod_headers,但不幸的是只有Apache 2.4,因为表达式只添加到2.4。你会这样做:

Header set Set-Cookie "cookie-contents-here" "expr=%{resp:Content-Type} =~ m|application/pdf|" 

如果你不能升级到2.4,你可能会考虑把Varnish Cache放在你的Apache安装前面。它是一个强大的HTTP处理器,可以轻松处理为您修改响应。您也可以实现缓存并提高网站的性能,但如果您不想这样做,它只能用作传递HTTP处理器。也许有一个更简单的解决方案,但这将工作。

另一种选择是在Apache和后端之间放置一个图层,例如PHP脚本,它处理将该调用传递到后端并在返回时修改头部。尽管表现可能不太好;升级Apache或实施Varnish Cache会更好。

如果您使用Apache控制的单独后端,那么您可以将Apache完全从循环中取出,并从Varnish Cache直接转到后端。

希望这些想法有所帮助。

+0

现在我们被apache-2.2卡住了。它捆绑在仍然为2.2的IBM HTTP Server 8中。我正在考虑IHS 9其中_has_ apache-2.4,但在生产服务器上需要一些时间。感谢您的答复 :-) – sastorsl