Plugin-URL - SEO-URL

Hallo Community, ich würde gerne die Aufruf-URL meines Plugins im Frontend ändern. Also im Moment lautet diese http://www.domain.de/Pluginname. Weiterhin wird anschließend noch der Actionsfunktionsname dran gehängt (http://www.domain.de/Pluginname/Actionsfunktionsname). Benötigt wird aber http://www.domain.de/SEO-Pluginname + http://www.domain.de/SEO-Pluginname/SEO-Actionfunktionsname. Wenn ich es richtig sehe, funktioniert das SEO- und Router-Plugin nur für Kategorien und Artikel. In der ersten Instanz erwartet es sViewport. Ich habe es bei sonstige SEO-URLs und Query-Aliase versucht. Leider ohne Erfolg. Wir setzen die Shopware-Version 4.0.4 ein. Gibt es dafür schon ein Plugin oder eine Lösung? Andernfalls würde ich mir ein eigenes Plugin programmieren. Vielen Dank im Voraus!

Könnte man das nicht via .htaccess machen?

Das war auch unsere erste Idee. Die Frage ist dann, wie man im anschließenden Query die Aliase ersetzt. Das könnte man jedoch wahrscheinlich über das Router/SEO-Plugin lösen. Ich probiere es mal aus. Danke!

So, ich habe es ausprobiert und es funktioniert nicht. RewriteRule ^schoenername(.\*)$ controller [PT,L,QSA] Damit wird man zwar an den entsprechenden Controller weitergeleitet. Dieser ersetzt jedoch in der Url den schönen Namen mit dem Controller-Namen. Das man den Controllername gleich nach dem SEO-Name benennen muss, erscheint mir sehr merkwürdig.

So, da es immer noch keine Lösung für das Problem gibt, beschreibe ich es mal etwas ausfühlicher. Wir möchten auf einer Seite alle Hersteller anzeigen lassen. Dafür habe ich ein Plugin erstellt. Mit dem Aufruf des Controllernamens /hersteller wird die Funktion indexAction aufgerufen und die Übersichtsseite wird erstellt und angezeigt. Das funktioniert schon einmal. Dann möchte ich für jeden Hersteller per Link auf eine Detailseite (Landingpage) gelangen. Dafür habe ich im Moment folgenden (merkwürdigen) Link: /hersteller/detail/name/musterhersteller “detail” ist der Name der Funktion detailAction und “name” die Variable. Es sollte doch irgendwie möglich sein, den Link und URL auf /hersteller/musterhersteller zu kürzen. Wir haben bereits das Router- und SEO-Plugin im Einsatz. Mit .htaccess kann man es, meiner Meinung nach, nicht lösen.

Ja, es wird Zeit, das Plugin-System bzw. den Shopware Core auf SF2 umzustellen. Damit wäre das alles kein Problem. Evtl. kann sich ja ein Mitarbeiter von Shopware zum aktuellen Stand äußern?

Ich würde gerne den Thread nochmal hervorholen… Das ist aktuell ein großes Problem bei einer unserer Kunden. Aus der URL muss /detail/name/ entfernt werden. Für einen Tipp wäre ich sehr dankbar! Evtl. könnte sich auch jemand vom Shopware-Team das Problem mal anschauen. Vielen Dank im Voraus! Viele Grüße Mathias

Hey, schau dir mal die Klasse sRewriteTable.php unter /engine/core/class an - dort werden die SEO-Urls generiert und in der temporären Tabelle s_core_rewrite_urls gespeichert. Du kannst also innerhalb deines Plugins folgendermaßen SEO-Urls generieren: Shopware()->Modules()->sRewriteTable()->sInsertUrl( ‚sViewport=Hersteller&sAction=detail&Hersteller=ABC‘, ‚Hersteller/ABC‘ ); Routet Hersteller/ABC auf den Controller Hersteller, Action detail und übermittelt zusätzlich den Userspace-Parameter Hersteller mit dem Wert ABC.

Vielen Dank für den Tipp! Das hört sich vielversprechend an. Ich werde es mir mal anschauen.

Kurze Frage - ist der Code noch aktuell? Also Shopware()-\>Modules()-\>sRewriteTable()-\>sInsertUrl( 'sViewport=Hersteller&sAction=detail&Hersteller=ABC', 'Hersteller/ABC' ); Weil - im Github Repo findet man nicht eine Stelle, die das irgendwo selbst mal aufruft … bin an einer Lösung interessiert :slight_smile: Schöne Grüße, Niklas

Schau mal in die Datei engine/Shopware/Core/sRewriteTable.php. Dort gibt es die Funktion sCreateRewriteTableSuppliers. Dort wird auch sInsertUrl aufgerufen. Grüße