我有一個基本的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