Hallo, ich habe unseren Testshop auf v3.1.1.0 aktualisiert. In der Installationsbeschreibung steht, "Um die Funktion Imageprocessing on the fly nutzen zu können, muss die Datei .htaccess im Ordner images ersetzt werden." Mit welcher .htaccess Datei muss den die Datei im Ornder images ersetzt werden? Es steht nur, dass die Datei ersetzt werden muss, aber nicht mit welcher? Testshop: v3.1.1.0
Die ist eigentlich schon im Shop drin, in den Updates, dann gibt es nichts zu tun. Manche Leute übernehmen die nur nicht, weil sie meinen selbst noch bessere Regelsätze aufstellen zu können, denen soll der Hinweis dienen. Wenn du die korrekte htaccess Datei im Ordner images/product_images hast, findest du darin folgenden Schnippel: Code: RewriteCond %{REQUEST_FILENAME} ".*/images/product_images/.*" RewriteCond %{REQUEST_FILENAME} !-s RewriteRule (\.jpe?g|\.gif|\.png)$ ../../shop.php?do=ImageRequest&requested_image=%{REQUEST_URI} [L]
Also ich habe eine frische Installation der Version 3.1.1.0 Beta 2 und das ist der Inhalt der images/ .htaccess: Code: # ----------------------------------------------------------------------------- # ETags # ----------------------------------------------------------------------------- <IfModule mod_headers.c> Header unset ETag </IfModule> # `FileETag None` doesn't work in all cases. FileETag None # ----------------------------------------------------------------------------- # Caching # ----------------------------------------------------------------------------- <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 2 weeks" # Favicon (cannot be renamed!) and cursor images ExpiresByType image/vnd.microsoft.icon "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" # Media files ExpiresByType audio/ogg "access plus 2 weeks" ExpiresByType image/bmp "access plus 2 weeks" ExpiresByType image/gif "access plus 2 weeks" ExpiresByType image/jpeg "access plus 2 weeks" ExpiresByType image/png "access plus 2 weeks" ExpiresByType image/svg+xml "access plus 2 weeks" ExpiresByType image/webp "access plus 2 weeks" ExpiresByType video/mp4 "access plus 2 weeks" ExpiresByType video/ogg "access plus 2 weeks" ExpiresByType video/webm "access plus 2 weeks" </IfModule> und in den Update-Paketen habe ich in images keine .htaccees gesehen.
@barbara in der images/produkt_images ist die htaccess drin wie Wilken beschrieben. Upps Wilken war schneller..
Na dann ist die Installations-Anleitung (SP 3.1.1.0) falsch Nachtrag, wenn ich Wilkens Post richtig gelesen hätte....
Ich greife dieses Thema mal auf. Hatte soeben einen Gambio GX3 v3.6.0.2 dort funktionierte die onthefly-Generierung nicht. Es fehlte die besagt .htaccess-Datei! Ich habe mir daraufhin das Original-Download-Paket angesehen, keine .htaccess-Datei im Pfad \images\product_images\ zu sehen. Weitere Versionen die ich geprüft habe bei denen die .htaccess dort auch fehlt: Gambio GX3 v3.5.3.0 Gambio GX3 v3.7.1.2 (Full) Gambio GX3 v3.8.2.1 (Stable) Gambio GX3 v3.9.2.0 (Full) In der Gambio GX3 v3.4.3.0 ist die .htaccess-Datei noch vorhanden. Hat sich da an der Logik ab 3.5 was geändert? Ist dort die onthefly-Generierung nicht mehr im Standard aktiviert und muss wo aktiviert werden? Ein wenig habe ich schon gesucht, finde aber auf die Schnelle nichts. Danke!
Die Logik hat sich nicht verändert, allerdings der Aufruf. Das ist nicht mehr im product_images Ordner, sondern in der htaccess Datei im Hauptverzeichnis. Wir haben das alles mal nach Möglichkeit an einem Ort zusammengezogen, sowohl aus Aufräum- als auch aus Optimerungsgründen. Die Datei ist relativ gut kommentiert, man findet das dadrin auch.
Ich würde wenns nicht klappt übrigens folgendes als erstes anschauen: In der Serverinfo schauen ob die htaccess evaluiert wird und die Apache Module da sind, wenn ja sieht normal Kontrollvariablen von uns. Schauen ob ein Frontendproxy davor ist wie ein Nginx für statische Inhalte. Das ist bei Plesk zum Beispiel im Standard so. Wenn der die Bilder direkt liefert und die Regel damit nie zur Anwendung kommt, weil der Apache und Shop gar nix mitkriegt, dann werden die auch nicht erzeugt. Dann müssen entweder wenigestens die Bilder vom Apache geserved werden, oder man muss dem Nginx den Rewrite näherbringen, je nach Möglichkeit. Schnellster "Hack" ist dann üblicherweise den Nginx per Checkbox aus der Kette zu entsorgen, so kommt man erstmal zu was.
Danke Wilken! Ich werde mir einen Überblick verschaffen warum das bei dem Projekt entweder in der .htaccess-Datei im root nicht enthalten war oder wenn es enthalten war warum es nicht funktioniert. Mit der gesonderten Datei unter images/product_images/ klappt es auf jeden Fall, somit ist serverseitig alles ok!
Update: In der .taccess-Datei im root war folgendes Schnipsel enthalten: Code: ## if request destination is a product image and size not bigger than 0 try to create the sized image RewriteCond %{REQUEST_FILENAME} ".*?\/images\/product_images\/.*\.(?:gif|jpe?g|png)$" RewriteCond %{REQUEST_FILENAME} !-s RewriteRule (\.gif|\.jpe?g|\.png)$ %{ENV:BASE}shop.php?do=ImageRequest [L,NC] In der Datei aus der 3.4er Version welche noch unter images/product_images/ lag war folgender Code enthalten: Code: RewriteCond %{REQUEST_FILENAME} ".*/images/product_images/.*" RewriteCond %{REQUEST_FILENAME} !-s RewriteRule (\.jpe?g|\.gif|\.png)$ ../../shop.php?do=ImageRequest&requested_image=%{REQUEST_URI} [L,NC] Evtl. funktioniert obiger neuer auf diesem Server bei der Konstellation auch nur nicht. Wenn ich etwas Zeit dazu habe sehe ich mir das nochmals genauer an. Danke erst mal!
Du könntest zum Beispiel mal die Variable ENV:BASE fest einsetzen, das ist nichts anderes als die dynamisch ermittelte RewriteBase. Vielleicht füllt der Server die nicht richtig. Check ausserdem, dass der ImageRequestController aktuell und nicht überladen ist, früher haben wir den Bildnamen als Parameter übergeben, inzwischen holen wir den aus der URI, das behob einige Probleme mit Pfadangaben und Sonderzeichen. Wenn man da nichts findet, würde im im Controller mal die URI ausgeben lassen, um zu schauen ob die heil ankommt.
Danke Wilken! Die Ursache war keine der beiden Ideen. Eine unserer zusätzlich integrierten Regeln haben die onthefly-Generierung "gestört". Wir haben da nun nochmals nachoptimiert und nun passt es. Zumindest bin ich da nun mal in die Tiefe gegangen - was sonst ja nie notwendig war da es einfach funktioniert hat bei anderen Projekten. ;-) Danke für Deine Mühen!