1. .htaccess, line 233
# immer auf den root verweisen, damit die Startseite (/index.php) nicht zweimal vorkommt
# die folgenden beiden Zeilen auskommentieren wenn Sie eine index.html nutzen wollen
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,L]
Was macht genau diese Regel? Was ist das Ziel davon? Aus der Beschreibung kann ich leider nichts verstehen. Ich frage deswegen, weil diese Regel standardmäßig aktiv ist und ein Problem bei der Suche verursacht (siehe nächsten Punkt).
2. includes/xajax/xajax.cseofunctions.php, line 21
Gibt es da einen geheimen Grund, warum der URI ständig umgeschrieben wird?
Irgendwann, wenn man die Hauptseite des Shops abruft (z.B. durch Eingeben des Domainnamen), wird index.php ausgeführt. URI für xajax-Calls wird auf /index.php gesetzt. Versucht man jetzt ins Suche-Eingabefeld was einzutippen, bekommt man keine Suchvorschläge. Was passiert: xajax generiert auf der Client-Seite einen POST-Request auf http://www.myshop.de/index.php. Durch die o. g. RewriteRule wird dieser Request mit dem HTTP-Code 301 (Moved permanently) auf http://www.myshop.de/ umgeleitet. Der Browser macht einen weiteren Request auf die neue Location, in diesem Fall aber GET-Request. Und die Parameter, die mit POST angehängt wurden, gehen verloren. Der wichtige Parameter "xajax", welcher den Name der auf der Server-Seite aufzurufenden Methode beinhaltet, ist weder in $_POST noch in $_GET vorhanden. xajax tut nichts und zurück wird die komplette Seite (html mit allem drum und dran) geliefert.
3. includes/xajax/xajax_core/xajax.inc.php, line 511
Der Code wird bei jedem Zugriff ausgeführt. Cache-Datei wird somit pro Client pro Zugriff gelöscht und neu geschrieben. Race condition unvermeidlich.
4. includes/xajax/xajax_core/xajax.inc.php und includes/xajax/xajax_core/xajax_checkout.inc.php sind absolut identisch bis auf die Zeile 496. Code reuse war unmöglich?