我有一个正在开发的 Magento 网站http://www.burdastyle.co.uk/,更改货币时出现问题。货币选择器应该添加一个带有“货币”键和所选货币价值的cookie,例如“美元”、“澳元”等。
该站点由 nginx 运行,并且还使用 nginx 缓存。我知道这是缓存导致它不能作为缓存块的 nginx conf 的一部分工作:
fastcgi_hide_header "Set-Cookie";
如果我删除该行,货币选择器将按预期工作,但是如果我在我的购物车中添加一个项目,并且其他人查看他们的购物车,它会显示我刚刚添加的项目,因为它没有该行,所有 cookie 值被缓存并提供给所有最终用户。
完整的 nginx 缓存块是:
location @fcgi_cache {
fastcgi_pass phpfpm;
#fastcgi_cache mage;
fastcgi_cache mage_bs;
fastcgi_cache_key "$mobile_request|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri|$cookie_currency";
fastcgi_hide_header "Set-Cookie";
if ($http_cookie !~ "X-Store=1" ) {
add_header Set-Cookie "X-Store=1; path=/";
}
fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
fastcgi_cache_min_uses 1;
fastcgi_cache_valid 200 202 8h;
fastcgi_cache_use_stale updating error timeout invalid_header http_500;
fastcgi_cache_bypass $cookie_EXTERNAL_NO_CACHE $cookie_CUSTOMER_AUTH;
fastcgi_no_cache $cookie_EXTERNAL_NO_CACHE $cookie_CUSTOMER_AUTH;
}
我尝试添加“add_header Set-Cookie”currency=${cookie_currency}; path=/"; 但似乎在 fastcgi_hide_header 行之后, $cookie_currency 变量被清除了,所以这也不起作用。
任何帮助,将不胜感激。提前谢谢你。