在Apache中设置多个cookie

Spa*_*nky 5 apache cookies mod-headers

我正在尝试使用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"
Run Code Online (Sandbox Code Playgroud)

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

Header set Set-Cookie "poodle=noodle;tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Run Code Online (Sandbox Code Playgroud)

同样的问题.我需要使用"Header append"吗?任何例子将不胜感激.

小智 8

我会使用mod_rewritecookie标志 语法是:

 [CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] 
Run Code Online (Sandbox Code Playgroud)

所以你想要类似的东西:

RewriteEngine On
RewriteRule .* -  [CO=poodle:noodle:example.com:0:/:true:true]
RewriteRule .* -  [CO=tweedle:puddle:example.com:0:/:true:true]
Run Code Online (Sandbox Code Playgroud)


Cyb*_*bot 6

根据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"
Run Code Online (Sandbox Code Playgroud)

或根据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"
Run Code Online (Sandbox Code Playgroud)

或者,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"
Run Code Online (Sandbox Code Playgroud)