apache如何使用&#34;标题集Set-Cookie expires = <date>&#34;动态</日期>

时间:2015-04-09 22:11:44

标签: apache mod-rewrite cookies mod-headers

我使用apache作为负载均衡器和反向代理。 对于会话粘性,我正在创建一个包含节点路径的cookie。

Header set Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/; domain=.domain.com" env=BALANCER_ROUTE_CHANGED

如何将Cookie中的expires值设置为距请求进入后X分钟?

mod_headers的文档甚至没有详细介绍Set-Cookie,因此动态语法中没有用于expires的信息。

我尝试设置max-age,但不幸的是max-age doesn't work with IE 11,很多客户都使用它。

mod_rewrite cookie的文档确实涵盖了如何在cookie中设置生命周期,所以我可以使用这个丑陋的mod_rewrite hack让它工作但是我必须为每条路径做一个规则,因为它在我的内部不起作用<Proxy balancer://my_cluster>部分:

RewriteCond %{HTTP_COOKIE} h=.1 [NC]
RewriteRule . -  [CO=h:.1:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.2 [NC]
RewriteRule . -  [CO=h:.2:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.3 [NC]
RewriteRule . -  [CO=h:.3:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.4 [NC]
RewriteRule . -  [CO=h:.4:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.5 [NC]
RewriteRule . -  [CO=h:.5:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.6 [NC]
RewriteRule . -  [CO=h:.6:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.7 [NC]
RewriteRule . -  [CO=h:.7:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.8 [NC]
RewriteRule . -  [CO=h:.8:.domain.com:30:/]

有关如何使用Header set Set-Cookie完成的任何想法?谢谢!

2 个答案:

答案 0 :(得分:3)

也许你可以用通用规则来保持你的想法

RewriteCond %{HTTP_COOKIE} h=\.([1-8]) [NC]
RewriteRule . - [CO=h:.%1:.domain.com:30:/]

答案 1 :(得分:0)

我查看了paypal网站的cookie,发现他们将cookie时间设置为过去一年 - (01 -01-1970)。这背后的原因可能是停止重复使用cookie。