Wie können wir helfen?

Kategorien
Inhalt

Woocommerce Caching Probleme mit nginx Proxy

Navigation:
< zurück

Symptom

  1. Woocommerce “Add to basket” / “Zum Warenkorb hinzufügen” funktioniert nicht
  2. Kommentare in WordPress hinzufügen funktioniert nicht
  3. Woocommerce Produkte aus dem Warenkorb entfernen funktioniert nicht

Ursache

Wenn Sie WordPress und Woocommerce zusammen auf einem Webserver mit aktiviertem nginx Proxy einsetzen, werden die Cookies nicht neutral gespeichert und jeder Websitebenutzer erhält eventuell kein Cookie bzw. kein persönliches.

Lösung

  1. Wenden Sie sich bei Woocommerce Hosting Lösungen an einen Partner, der sich damit auskennt
  2. Nutzen Sie nginx vorerst nur, wenn Sie die Leistung tatsächlich in absehbarer Zeit benötigen
  3. Fügen Sie folgende Code Snippets in ihre nginx Konfiguration ein, bitte seien Sie damit vorsichtig!

Skip Cache auf woocommerce Seiten

if ($request_uri ~* "/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
         set $skip_cache 1;
}

Skip Cache für woocommerce Query String

if ( $arg_add-to-cart != "" ) { 
      set $skip_cache 1;
}

Skip Cache wenn der Warenkorb nicht leer ist

if ( $cookie_woocommerce_items_in_cart != "0" ) { 
    set $skip_cache 1;
}

Fastcgi Cache Problem

Voraussetzung ist, dass Sie einwandfreie Apache und nginx Konfigurationen einsetzen. Sollte es zu mehreren Fehlern im Caching kommen, müssen zuvor die anderen Probleme behoben werden.

Suchen Sie nach diesem Konfigurationsabschnitt:

location ~ \.php$ {

        try_files $uri =404;

und ersetzen diesen mit folgendem Code:

 location ~ \.php$ {
        set $rt_session "";

        if ($http_cookie ~* "wc_session_cookie_[^=]*=([^%]+)%7C") {
                    set $rt_session wc_session_cookie_$1;
            }   

        if ($skip_cache = 0 ) {
            more_clear_headers "Set-Cookie*";
            set $rt_session "";
        }

            fastcgi_cache_key "$scheme$request_method$host$request_uri$rt_session";

        try_files $uri =404;

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert