在我的Plone网站上,当用户转到特定的页面p,然后单击"登录"并成功完成登录过程时,她会被重定向到主页或随机页面,而不是页面p。
我认为这是因为page/login_form是从Varnish缓存中提供的,并且在缓存时包含来自其他用户的隐藏came_from字段:。
什么是防止/login_form缓存的好方法,也许还有其他具有相同机制的页面的缓存?
难道缓存配置工具(CacheFu/CacheSetup)不应该处理好这一问题,并使用/login_form发送标头以阻止缓存吗?
我在Plone关于Varnish的文档中找不到任何关于这个问题的信息。
我在Debian Linux 7.6上使用Plone 3.3.5和缓存配置工具(CacheSetup 1.2.1)以及前面的Varnish 3.0.2(Client<Apache<Varnish<Plone)。
由于不熟悉Plone,我无法评论Plone的配置。但是为了防止/login_form
URL被缓存,您可以使用以下vcl_recv()
sub vcl_recv {
if (req.url == "/login_form") {
return(pass);
}
}
有一个有用的清漆conf,使用它-http://docs.plone.org/manage/deploying/caching/varnish.html#varnish-3-x示例
ps:启用授权的代码行:
if (req.http.Authorization || req.http.Cookie) {return (pass);}