如何使用 Apache 将 cookie 值附加到响应位置标头的末尾?

Posted

技术标签:

【中文标题】如何使用 Apache 将 cookie 值附加到响应位置标头的末尾?【英文标题】:How to append cookie value to end of response Location header with Apache? 【发布时间】:2011-04-22 01:07:21 【问题描述】:

我有一个发出 HTTP 重定向的页面。我需要将当前会话 ID (jsessionid) 附加到 HTTP 重定向的末尾,以将此 ID 作为重定向中的 GET 参数传递。

mod_headerHeader append 指令可以通过 SetEnvIf 获取 cookie 值吗?

是否应该参与重写?但是mod_rewrite 只是重写了 request 而不是 response,是吗?

在不触及后端代码的情况下,您将如何从 Apache 的角度解决这个问题?


更新:Apache-JVM 由 mod_jk 或通过 IBM HTTP Server 连接到 WebSphere 来处理。

【问题讨论】:

如何连接到后端?您是使用 mod_proxy/mod_jk 连接到后端,还是像 mod_python/mod_php 这样的内部 apache 模块? 据我所知,没有办法获得单个 cookie 名称/值。但是您可以使用%HTTP_COOKIERewriteRule 中获得完整的Cookie: 字段。见httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond @Lekensteyn,我只使用过重写来重写 INCOMING 请求,它们如何用于重写响应的标头? 【参考方案1】:

据我所知,使用 Apache HTTPd 你可以这样做:

SetEnvIf Cookie "mycookie=([^;]+)" MYCOOKIE=$1
SetEnvIf Cookie "mycookie=([^;]+)" HAVE_MYCOOKIE=1
Header add Set-Cookie "mycookie=%MYCOOKIEe; expires=0" env=HAVE_MYCOOKIE

如果需要,您还可以添加额外的 cookie 属性,例如路径和域。

【讨论】:

这不会将cookie添加到每个传出响应中吗? Xepoch 只希望它用于重定向类型的响应。 确实,我忽略了这个要求,但是我不知道立即解决这个问题。

以上是关于如何使用 Apache 将 cookie 值附加到响应位置标头的末尾?的主要内容,如果未能解决你的问题,请参考以下文章

将 cookie 附加到 WorkLight Adapter 响应标头

如何将我的域名附加到我的服务器 IP 地址 (Apache)

如何管理安卓中的Cookie

如何将我的域名附加到我的服务器IP地址(Apache)

如何使用 Sequelize + PostgreSQL 将项目附加到数组值

如何使用 Python 将 xml 文件属性附加到数组值?