私が取り組んでいるMagento サイトhttp://www.burdastyle.co.uk/があり、通貨を変更するときに問題があります。通貨セレクターは、「通貨」のキーと、「USD」、「AUD」などの選択された通貨の値を持つ 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 変数が消去されているようで、これも機能しませんでした。
どんな助けでも大歓迎です。よろしくお願いします。