5

我正在尝试使用 mod_header 在 Apache (2.2) 中设置两个 cookie,如下所示:

Header set Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Header set Set-Cookie "tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"

但只有最后一个 cookie 被发送到浏览器。我做了一些搜索,但只发现有人遇到这个问题而没有解决方案。我试过将它们组合成一个:

Header set Set-Cookie "poodle=noodle;tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"

同样的问题。我需要改用“标题附加”吗?任何示例将不胜感激。

4

2 回答 2

10

我会将mod_rewritecookie 标志一起使用 ,语法为:

 [CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] 

所以你想要类似的东西:

RewriteEngine On
RewriteRule .* -  [CO=poodle:noodle:example.com:0:/:true:true]
RewriteRule .* -  [CO=tweedle:puddle:example.com:0:/:true:true]
于 2013-05-17T03:38:49.553 回答
10

根据 Apache 手册http://httpd.apache.org/docs/current/mod/mod_headers.html#header你应该使用append

Header append Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Header append Set-Cookie "tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"

或者根据 HTTP 使用逗号分隔多个值:

Header append Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT, tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"

或者Header add如果您想避免在一个标头中使用逗号分隔的 cookie 以遵循 RFC 6265 第 3 节中的建议(如 @SteveC 所述),请使用:

Header add Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Header add Set-Cookie "tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
于 2014-06-11T14:04:23.027 回答