4

私が取り組んでいる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 変数が消去されているようで、これも機能しませんでした。

どんな助けでも大歓迎です。よろしくお願いします。

4

1 に答える 1