我有一个基本的PHP页面通过Varnish加载一个ESI包括回调到服务器来设置一个cookie。该cookie设置了域访问等,但通过ESI调用时,cookie从未设置。如果您直接访问ESI包含路径,则设置cookie不会有任何问题。我甚至把我的Varnish配置设置为永不缓存任何东西,认为VCL可能会杀死cookie。如何从ESI:include脚本中设置cookie?
这...
<esi:include src="/init.php?<?=http_build_query($_GET); ?>"></esi:include>
...包括这个...
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
setcookie('superman', 'clark kent', 0, '/', '.whatever.com');
?>
我是新清漆和ESI,所以我开始怀疑这是否是一个已知的限制(无论是ESI还是Varnish的ESI实施),但我无法在网上找到有关我的问题的任何讨论。
吸。 是的,我可以去javascript路由设置cookie,但我希望不必因为各种原因这样做。 我想我会继续试图找到一种可能的方法来破解这个,但我不确定现在可能,特别是在光油ESI实施在光油。 – 2011-03-21 15:29:08