0

我正在使用 cookie,以便移动用户可以作为桌面用户访问我的网站。为此,我给了他们一个 cookie - mob_yes。

然后,在一个模块中,我使用 drupal 挂钩来查看是否设置了 cookie。

我可以看到 cookie 正在设置,但在我的模块 (isset($_COOKIE["mob_yes"])) 中使用清漆时总是返回 false。

在 /etc/varnish/default.vlc 我有以下内容:

if (req.http.Cookie) {
set req.http.Cookie = regsuball(req.http.Cookie, ";(mob_yes)=", "; \1=");

我真的不确定这里发生了什么,但我只是假设清漆不会暂时取消设置那个 cookie?有谁知道这里出了什么问题?

谢谢,

4

1 回答 1

0

你是什​​么意思

我可以看到 cookie 正在设置

你的意思是你可以在firebug(客户端)的标题中看到它,然后你在服务器端看到它与tcpdump / varnishlog / application(服务器端)?

vcl 中的代码片段可能是保存重要 cookie 的常用方法的一部分,方法是在它们前面添加一个空格,删除所有没有 ";[space]" 组合并在末尾删除空格。它稍后用于为特定的 url+cookies 请求生成哈希。

如果用户未登录,我认为你应该检查你的 vcl,如果它没有删除任何 cookie - 这是提高命中率的常见做法。

通常在drupal的vcl中,它是检查DRUPAL_UID的一部分

于 2012-04-06T19:57:35.867 回答