Hallo an die Forum-Community, mir ist in meinem Shop für Tonträger folgendes aufgefallen: Ich habe für mein Angebot bestimmte Musik-Labels als Kategorie und in diesen die herausgebrachten CDs und Schallplatten untergebracht. Über die Navigation sind diese zu erreichen. Gleichzeitig habe ich diese auch als Hersteller angelegt und die einzelnen Veröffentlichungen zugewiesen. Es gibt einige Veröffentlichungen, die von mehreren Labels/Herstellern herausgegeben wurden, so dass ich sie in mehrere Kategorien kopiert habe. Ich kann aber nur einen Hersteller zuweisen. Wenn ich nun bei einer Artikelansicht auf das Hersteller-Bild klicke, werden nur die jeweiligen Artikel angezeigt, die ihm zugewiesen sind. Ich würde aber gerne auch die übrigen, also alle in der Kategorie bei diesem Klick mit aufgelistet sehen, weil sie eben doch auch zu diesem Label gehören. Ich hoffe, ich habe das nachvollziehbar beschrieben. Gibt es dafür Lösungen? Oder Ideen für einen "Trick"?
Hier ist mein Shop: www.shop.minorlabel.de Ein Beispiel: das Label "Gate of Deliria" über die Navigationsleiste (alle Artikel in der Kategorie) https://shop.minorlabel.de/?cat=c67_gate-of-deliria-gate-of-deliria.html Beim Klick auf das Herstellerlogo bei dieser Schallplatte https://shop.minorlabel.de/product_...ue---the-other-side-effects---gas-huffer.html wird nur die Liste der Schallplatten angezeigt, die Gate of Deliria als Hersteller haben. Vielleicht hat jemand eine Idee. Mehrere Hersteller zuweisen - das wäre natürlich am besten
Das wird kaum möglich sein. Du könntest aber die Herstellerseite via RewriteRule (z.B. in der .htaccess) auf die gewünschte Kategorie weiterleiten: Code: RewriteCond %{QUERY_STRING} ^manufacturers_id=8$ RewriteRule ^(.*) /?cat=c67_gate-of-deliria-gate-of-deliria.html [L,R=301] Wobei ich generell empfehlen würde, "Suchmaschinenfreundliche URLs Pro" zu aktivieren, wodurch sich die URLs und damit auch der Code für die Weiterleitung ändern würde.
Vielen Dank für die schnelle Antwort. Ich werde das (mit meinen lausigen Code-Kenntnissen) mal ausprobieren. Zwei-drei Fragen habe ich noch, bevor ich loslegen kann: Welche .htaccess benutze ich dafür? Ich habe eine solche bei einer ersten Suche an mehreren Stellen gefunden: [mein Shop]/themes/.htaccess [mein Shop]/.htaccess (vielleicht auch noch mehr...) Wofür stehen diese Parameter: [L,R=301] ? An welche Stelle müssten diese zwei Zeilen dann? (einfach an den Schluss?) Um sicher zugehen: ich müsste das mit den jeweils angepassten Werten für alle Labels/Hersteller machen, die ich so haben will? (das "verträgt" die Datei auch, wenn da 20-30 vergleichbare Code Passagen drin stehen?)
das ist die richtige Datei Das ist die Art der Weiterleitung. Siehe dazu z.B. (Link nur für registrierte Nutzer sichtbar.) Das kommt zwischen Code: # ----------------------------------------------------------------------------- # Put your own Redirects and Rewrites here - Start # ----------------------------------------------------------------------------- ## Example Redirects ## Example for category #RewriteCond %{REQUEST_URI} old-category #RewriteRule ^(.*)$ https://www.shop.com/new-category [L,R=301] ## Example for product #RewriteCond %{REQUEST_URI} old-category/old-product.html #RewriteRule ^(.*)$ https://www.shop.com/new-category/new-product-html [L,R=301] und Code: # ----------------------------------------------------------------------------- # Put your own Redirects and Rewrites here - End # ----------------------------------------------------------------------------- ja ich habe über 50 Weiterleitungen von Kategorien und Artikeln und konnte keine Probleme damit feststellen.
Vielen Dank für die Hilfe. Das habe ich gemacht. Ich habe dann den folgenden Code ausprobiert und es funktioniert bei dem Label "Gate of Deliria" gut. Code: RewriteCond %{QUERY_STRING} ^manufacturers_id=8$ RewriteRule ^(.*) /labels/gate-of-deliria [L,R=301] Beim Reproduzieren für ein anderes Label bin ich auf folgendes Problem gestoßen: Der Code sieht folgendermaßen aus: Code: RewriteCond %{QUERY_STRING} manufacturers_id=23$ RewriteRule ^(.*) /labels/heavenly-vault [L,R=301] Daraufhin passiert (zunächst?) folgendes: Wenn ich diesen Code dann wieder lösche, weil ich davon ausgehe, dass da etwas falsch ist, funktioniert es dann im Anschluss (plötzlich). Ich zweifele etwas an mir selbst... Ich habe bis jetzt nur die Vermutung, dass ich zu ungeduldig bin...das System mit dem Upload der editierten Datei(en) nicht hinterher kommt. Oder ist da auf den ersten Blick ein Fehler zu sehen?
Kurzer Nachtrag: Das Häkchen ist im Code vorhanden: code RewriteCond %{QUERY_STRING} ^manufacturers_id=23$ RewriteRule ^(.*) /labels/heavenly-vault [L,R=301] /code Das ist in meinem Post darüber verlorengegangen. Sobald diese zwei Zeilen in der .htaccess sind, funktioniert es nicht. Screenshot von Chrome: Sobald ich diese Zeilen lösche, funktioniert es dann ?wieder?. EDIT: Nachdem ich nun Cookies, Verlauf, Cache usw. gelöscht habe, will die Weiterleitung Gate of Deliria mit dem von mir benutzten Code auch nicht (mehr) funktionieren. Was mache ich bei der Sache falsch?
Hm… ich dachte, das Standardverhalten wäre mal gewesen, dass Query-String entfernt werden, wenn man nicht explizit das QSA-Flag setzt. Da scheine ich mich aber wohl getäuscht zu haben Wenn Du Apache 2.4.0+ nutzt (und das halte ich für wahrscheinlich), kannst Du das QSD-Flag setzen: Code: RewriteCond %{QUERY_STRING} ^manufacturers_id=8$ RewriteRule ^(.*) /labels/gate-of-deliria [QSD,L,R=301] RewriteCond %{QUERY_STRING} ^manufacturers_id=23$ RewriteRule ^(.*) /labels/heavenly-vault [QSD,L,R=301] Du wirst schnell merken, ob Du das verwenden kannst. Wenn der Shop nicht mehr aufrufbar ist, nimm das "QSD," wieder raus