2016-11-16 2 views
-3

Ich betreue ein E-Commerce-System, das Kataloge verschiedener Hersteller verwendet, um Produkte und Produktdaten anzuzeigen. Bei der Auswahl eines Produkts zur Anzeige der URL ist site-address/catalogue/product-category1/product-category2/product-code.Probleme mit/in URL

Wir haben nun die Aufgabe, einen neuen Lieferanten zu integrieren, dessen Produktcodes / darin enthalten. Dies verursacht offensichtlich Probleme, weil der / beim Abschneiden des Produktcodes und daher keine Seite gefunden wird.

Ich kann das fehlerhafte Zeichen beim Katalogimport nicht entfernen, da der fertige Auftrag in ein Backoffice-System lokal für den Kunden exportiert wird, der dann eine Bestellung am Ende des Tages erstellt und überträgt, und wenn der Produktcode wurde geändert Das Lieferantensystem erkennt den Code nicht.

Wir verwenden PHP, Mariadb, ElasticSearch und Zweig Vorlage. Um wiederholte Datensuchen zu speichern, werden die Kataloge bei der ersten Ankunft auf der Site zwischengespeichert.

+2

Großartig! Was hast du probiert? –

+1

Sie können ['urlencode()'] (https://secure.php.net/urlencode) verwenden, um den Produktcode zu codieren, bevor Sie ihn in die URL einfügen. –

Antwort

1

Sie müssen das Zeichen '/' in der URL mithilfe der ASCII-Notation codieren. Verwenden Sie% 2F, um das Zeichen '/' in ASCII darzustellen.

Wenn Ihr Produktcode beispielsweise "prod/23/89" lautet, lautet Ihre URL "website-adresse/katalog/produktkategorie1/produktkategorie2/prod% 2F23% 2F89".

Da Sie PHP verwenden, machen Sie sich mit der Funktion rawurlencode() vertraut, die URLs mit solchen Zeichen codiert.

+1

Entschuldigung dafür, dass ich keine weiteren Informationen zur Verfügung stelle, aber das war genau das, wonach ich gesucht habe, danke. –

+0

@sparky_hughes Nun, persönlich verstehe ich einfach nicht, warum die anderen Mitglieder diese Frage unklar gemacht haben, da ich es ziemlich selbsterklärend finde. – hecate

+1

Prozent-Codierung in URIs ist für UTF-8-Code-Einheiten. Siehe [RFC-3986] (https://tools.ietf.org/html/rfc3986#page-12). Beispiel: Suchen Sie nach À: [https://www.bing.com/search?q=%C3%80](https://www.bing.com/search?q=%C3%80). –