如何在 Apache 中删除 cookie

Posted

技术标签:

【中文标题】如何在 Apache 中删除 cookie【英文标题】:How to remove a cookie in Apache 【发布时间】:2010-12-20 09:13:26 【问题描述】:

我需要从到达服务器的 HTTP 请求中删除一个 cookie。在客户端(写入此 cookie)或服务器(读取它)上执行此操作不是一种选择。我有 Apache 2.0 代理客户端和服务器之间的请求,所以我希望使用 mod_rewrite 在 Apache 中删除 cookie。

我的问题是,有没有办法使用 mod_rewrite 从 HTTP 请求中删除某个 cookie?

如果无法仅删除 一个 cookie,那么作为最后的手段从请求中删除 所有 cookie?

如果 mod_rewrite 不是完成此任务的正确工具,我愿意接受有关如何完成此任务的其他建议。

【问题讨论】:

您可以使用 CO 标志使用 mod_rewrite 重写 cookie 【参考方案1】:

Apache mod_rewrite 允许操纵 URL,但不允许操纵 HTTP 标头,但是 'mod_headers' 将允许您这样做。

所以,你可以使用:

RequestHeader unset Cookie

这将从请求中删除 所有 cookie。我不确定是否可以使用这种技术仅删除特定的 cookie。

或者,您可以使用以下方法停止将 cookie 传递回客户端:

Header unset Set-Cookie

如果这样更合适的话。

【讨论】:

可以使用 mod_rewrite 设置 cookie。但据我所知,仅用于对客户的响应。【参考方案2】:

使用 Apache > 2.2.4,you could have used:

RequestHeader edit Cookie "^(.*?)ANY_COOKIE=.*?;(.*)$" $1$2

【讨论】:

This: RequestHeader edit Cookie "^(.*?)ssosession=.*?(?:$|;)(.*)$" $1$2 即使标题不以; 结尾也有效。 RequestHeader edit cookie ANY_COOKIE=[^;]*?($|;) "" 也应该可以工作:这样您就不必捕获前缀/后缀部分并将它们放回原处。【参考方案3】:

您可以在 apache 反向代理配置中使用以下语句来管理特定的 cookie:

要删除任何特定的 cookie,您可以使用:'标题添加 Set-Cookie "ANY_COOKIE='';expires='SOME_DATE_IN_PAST'; Max-Age=0; Path=COOKIE_PATH" '

通过指定过去的日期,您告诉浏览器 cookie 已过期,浏览器将丢弃 cookie。

要添加您可以使用的任何 cookie:'Header add Set-Cookie "ANY_COOKIE='ANY_VALUE';expires='SOME_FUTURE_DATE'; Path=COOKIE_PATH"'

请务必指定某个未来的日期。如果您不指定任何日期,cookie 将被视为会话 cookie。

尝试使用以下方法从请求中删除特定的 cookie:

'RequestHeader add Cookie "ANY_COOKIE='';expires='SOME_PAST_DATE'; Path=COOKIE_PATH"'

【讨论】:

尝试使用以下方法从请求中删除特定 cookie:'RequestHeader add Cookie "ANY_COOKIE='';expires='SOME_PAST_DATE'; Path=COOKIE_PATH"' 我认为 RequestHeader add Cookie 实际上会为您创建 3 个 cookie。 (ANY_COOKIE, expired and Path) 这可能不是你想要的。【参考方案4】:

我用它来取消设置所有 cookie(适合提供静态内容)

Header unset Cookie
Header unset Set-Cookie

【讨论】:

以上是关于如何在 Apache 中删除 cookie的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Apache HttpClient 4.3 处理 Cookie

如何在php中删除我网站的所有cookie

如何在 Postman 中删除会话 cookie?

如何在 symfony2 中删除 Session 和 cookie

如何在与他人共享之前从 HAR 文件中删除 Cookie 值

如何通过点击事件删除 jQuery 中的 cookie? [复制]