Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Apache、mod_缓存和Cookie_Php_Apache_Caching_Cookies_Session Cookies - Fatal编程技术网

Php Apache、mod_缓存和Cookie

Php Apache、mod_缓存和Cookie,php,apache,caching,cookies,session-cookies,Php,Apache,Caching,Cookies,Session Cookies,我正在考虑使用mod_缓存。但是,我希望Apache缓存的页面(由php生成)通常包含该用户的登录名(“您以…”身份登录)。所以我不能为所有用户缓存一个页面 登录状态由cookie确定。所以我认为我可以(在PHP中)在每个页面中包含一个“Vary:Cookie”标题。如果我对RFC2616的理解是正确的,这应该指示Apache(或任何其他)缓存算法为用户代理发送的每个Cookie值缓存单独的页面 因此,如果浏览器未发送cookie(用户注销),则缓存的响应将与cookie:state=89898

我正在考虑使用mod_缓存。但是,我希望Apache缓存的页面(由php生成)通常包含该用户的登录名(“您以…”身份登录)。所以我不能为所有用户缓存一个页面

登录状态由cookie确定。所以我认为我可以(在PHP中)在每个页面中包含一个“Vary:Cookie”标题。如果我对RFC2616的理解是正确的,这应该指示Apache(或任何其他)缓存算法为用户代理发送的每个Cookie值缓存单独的页面

因此,如果浏览器未发送cookie(用户注销),则缓存的响应将与cookie:state=89898XAAJ(用户以“Jacob”身份登录)请求的缓存响应分开,而cookie:state=XXAIU2389(用户以“Bob”身份登录)请求的缓存响应分开。如果一段时间后,用户请求相同的URL并使用Cookie:state=89898XAAJ,则会向他提供正确的页面,其中包含“You is logging as Jacob”(而不是其他缓存页面)


我的理解正确吗?是这样做还是我忽略了什么?

我不确定你所描述的方法是否有效

如果没有,您可以尝试使用重写条件检查cookie值,并根据用户和登录状态重定向到缓存地址

本页讨论基于cookie值的重写:

祝你身体健康,