Bei unserem frisch aufgesetzten Shopware4 fällt mir auf, dass die Unterseiten alle nur aufrufbar sind, wenn in der Request-URI “/shopware.php” enthalten ist. Damit der Shop auch ohne Angabe des Skripts erreichbar ist, habe ich “shopware.php” via htaccess zu den directory indizes hinzugefügt. Das funktioniert auch soweit, aber nur auf der Startseite. Bei den Unterseiten sieht das jedoch anders aus. Während diese URL korrekt erreichbar ist domain.tld/shopware.php/produkte/cat/1/test-produkt-1 … wirft diese einen Fehler: domain.tld/produkte/cat/1/test-produkt-1 Ich könnte via htaccess dafür sorgen, dass das entsprechend umgebogen wird, finde das aber nicht wirklich elegant. Habt ihr eine best-practice Lösung parat?
Würde mich auch interessieren.
Hi, die Urls werden nur mit „shopware.php“ erzeugt, wenn die aktuelle Seite auch so aufgerufen wurde. Normalerweise sollten beide Varianten funktionieren. Wen dem nicht der Fall ist, ist wahrscheinlich mod_rewrite nicht aktiv / richtig konfiguriert. Heiner
danke! falls jemand ein ähnliches problem hat: * checken, ob die „allowOverride“-Direktive von apache2 auf „All“ gesetzt ist * prüfen, ob das Modul „rewrite“ von apache2 aktiviert ist und das modul ggf mit „a2enmod rewrite“ und „service apache2 restart“ (unter debian/ubuntu) aktivieren. * prüfen, ob die .htaccess-Datei diese Zeilen enthält: [code]
RewriteEngine on
#RewriteBase /shopware/
RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.* engine [NC,L]
RewriteRule backend/media/(.*) media/$1 [NC,L]
RewriteCond %{REQUEST_URI} !(/(engine|files|templates)/)
RewriteCond %{REQUEST_URI} !(/media/(archive|banner|image|music|pdf|unknown|video)/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ shopware.php [PT,L,QSA]
[/code]