Herzlich willkommen im SEO Forum der ABAKUS Internet Marketing GmbH
registrieren registriertes Mitglied
301er per Wordpress Plugin oder direkt htaccess?
Redirect für Produktfotos, wenn URL + Meta + Pixel neu
Mit der letzten Version, die erst vor einigen Tagen rauskam, haben sie bereits mächtig nachgebessert, wobei es fast alle 2 Wochen Updates mit neuen Funktionen gibt. Die besagte Lösung von Dir hat aber schon seit jeher funktioniert. Der Webserver ist ja auch zu 99.99% mit Apache kompatibel und verwendet die gleichen Directive, ist aber kein Apache Fork, sondern hat mehr mit nginx gemein als mit Apache. Nur eben in Sachen Cache ist alles neu, wobei neu relativ ist. Den Webserver gibts ja schon seit 20 Jahren. Neu hinzugekommen ist, dass man u.a. mittels Rewrite den Cache partiell/ganz löschen kann, was vorher nur mittels PHP Header ging.Hanzo2012 hat geschrieben: ↑03.03.2022, 18:44 Ja, mod_rewrite kann keine Response Header setzen, sondern nur Request Header lesen.
Darum habe ich ja die Lösung mit „Header append“ vorgeschlagen. Das ist nicht Teil von mod_rewrite, sondern von mod_headers und genau für sowas gedacht. Warum das nicht funktioniert, musst du mit sen Entwicklern deines Caches besprechen.
Code: Alles auswählen
RewriteRule ^/?wishlist/product/delete - [E=cache-purge:/wishlist/list]
Code: Alles auswählen
SetEnvIfExpr "%{REQUEST_STATUS} != 200" Cache-Control:no-cache
Das hatte ich gleich zu Beginn ausprobiert noch bevor ich den Thread hier aufgemacht hatte, weil ich das anderswo schon in Verwendung habe. Die Apache Doku hatte mir aber auch das bestätigt, was Du selbst auch schon rausgefunden hast. Nichtsdestotrotz, selbst wenn SetEnvIfExpr in einem anderen Kontext funktioniert, funktioniert es nicht bei der Cache Anweisung. Hier gelten die bekannten rewrite Regeln.
Code: Alles auswählen
if (isset($_GET['do']) && ($_GET['do'] == 'Cart/BuyProduct')) {
header("X-LiteSpeed-Purge: /Cart/BuyProduct");
}
Im konkreten Fall geht es nicht um eine Einkaufswagenseite, im Allgmeinen aber schon, weil ich eine universelle Lösung suche. Nachdem Du in Sachen HTTP Cache ausnahmsweise mal nicht auf dem aktuellen Stand bist, will ich Deine Wissenslücke mal auffüllen, wobei wir das Thema glaub ich schon mal hatten. Du hast doch sicherlich schon mal was von "ESI" gehört oder? Wenn ja, dann sollte Dir das die Antwort darauf geben, warum es nicht so ist wie Du glaubst.Hanzo2012 hat geschrieben: ↑05.03.2022, 07:22 Sehe ich es richtig, dass es da um eine Einkaufswagen-Seite geht? Ich hoffe, dass die pro Nutzer, in Abhängigkeit von einem Session-Cookie o. Ä. gecached wird und nicht global für alle Nutzer. (Um auszuschließen, dass Nutzer A den gecachten Einkaufswagen von Nutzer B zu sehen bekommt)
Ein Request kann immer schiefgehen. Dafür brauchts nicht extra AJAX und selbst wenn, dann passiert dadurch nichts schlimmes. Aber mal losgelöst davon, wäre das wirklich so schlimm, dürfte es keine Shop Systeme geben, weil eine Überzahl der aktuellen Shop Systeme mit Client Side Includes arbeiten und das für eigentlich kritische Funktionen wie den Warenkorb.
Inzwischen bin ich ernüchtert, weil meine gedachte alternative Lösung auch nicht funktioniert. Ich kann vom Initial Request per Javascript zwar die Header und die aufgerufene URL abgreifen und per AJAX eine bestimmte URL aufrufen der als GET Parameter diese zum Löschen bestimmte URL dranhängt, was auch funktioniert. Allerdings gibt es keine Möglichkeit per JS den Status Code vom Initial Request abzugreifen, sodass in Folge dessen immer bei jedem Aufruf ein 2ter Aufruf als AJAX hinterher folgt. Und das ist Blödsinn.
Code: Alles auswählen
https://www.domain.com/purge.php?purge=/zu-loeschende-URL
Diese Lösung ist auch nicht universell. Ich mach mir doch den Aufwand nicht nur für mich, sondern für Kunden, sprich für die breite Masse und nicht jeder hat einen dedizierten Server oder VPS mit ausreichend Rechten, um die Logfile Generierung individuell zu gestalten. Es ginge zwar auch mit meinem Webserver, weil ich selbst schon mache, aber ich muss an die breite Masse denken.