如何在Apache中删除cookie

Ser*_*nko 16 apache mod-rewrite apache2

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

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

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

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

And*_*ndy 23

Apache mod_rewrite允许操纵URL而不是HTTP头,但是'mod_headers'可以让你这样做.

所以,你可以使用:

RequestHeader unset Cookie
Run Code Online (Sandbox Code Playgroud)

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

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

Header unset Set-Cookie
Run Code Online (Sandbox Code Playgroud)

如果那更合适.


Ant*_* O. 9

使用Apache> 2.2.4,您可以使用:

RequestHeader edit Cookie "^(.*?)ANY_COOKIE=.*?;(.*)$" $1$2
Run Code Online (Sandbox Code Playgroud)

  • 这个:`RequestHeader edit Cookie"^(.*?)ssosession =.*?(?:$ |;)(.*)$"$ 1 $ 2`即使标题不以`;`结尾也能正常工作. (4认同)
  • `RequestHeader edit cookie ANY_COOKIE=[^;]*?($|;) ""` 也应该有效:这样你就不必捕获前缀/后缀部分并将它们放回去。 (2认同)

Viv*_*HAN 8

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

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

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

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

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

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

'RequestHeader添加Cookie"ANY_COOKIE =''; expires ='SOME_PAST_DATE';路径= COOKIE_PATH"'