Mehrsprachiger Speicher als symbolisches Unterverzeichnis auf Nginx, das 'keine Route zur Seite' zurückgibt

magento.stackexchange https://magento.stackexchange.com//questions/64702

Frage

wir mussten unseren mehrsprachigen Shop mit dem einrichten subdirectory/symlink beschriebene Methode hier.(lesen Sie, warum @ bottom)

Wie wir es gemacht haben. Wir haben den Index kopiert.php in ein Unterverzeichnis und symbolisierte alle Ordner.Der base url wurde eingestellt auf domain.com/en

Problem/Frage Jetzt, wenn ich öffne domain.com/en Ich kann die Website sehen und sie zeigt die englische Version.Das einzige ist, dass alle Kategorie- und Produktlinks einen Fehler 'Keine Route zur Seite' erzeugen.Anstatt die Kategorie oder das Produkt anzuzeigen.Nun, wie kann das sein?

Beispiel So https://domain.com/en/funkyshoes öffnet nicht die Kategorie Funkyshoes und Funkyshoes auch nicht https://domain.com/funkyshoes übrigens.https://domain.com/en/funkyshoes zurückgeben => no route to page https://domain.com/funkyshoes zurückgeben => https://domain.com/en


warum nicht?da wir mehr als 1 Multistore haben und nicht jedem Store einen Lang-Store_code wie en / de / fr geben können, haben wir auch einen Multistore mit unterschiedlichen Domains pro Store und den anderen mit der Methode / en, / de, / fr aus der Hauptdomain.

War es hilfreich?

Lösung 2

Eine noch bessere Lösung ist:

location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite /(../)? /$1index.php?$args; }

weil wir einige spezielle Standortregeln für Katalog | Kasse | Kunden hatten.Das Problem war, dass alle auf @rewrite verwiesen haben - auf diese Weise mussten wir ALLE Standortbefehle neu schreiben, die eingerichtet wurden, um auch eine separate Übereinstimmung für / en und später / fr und / de zu haben.....

Also haben wir uns das einfachste Fallback-Umschreiben ausgedacht, das zuerst für / und dann für / (zweibuchstabiger Code) getestet wird....und darauf basierend umschreibt

scheint gut zu funktionieren

Außerdem muss die Store_code-Suche geändert werden.Aufgrund des / en funktionieren die Variablen http_host oder server nicht mehr.

Eine mögliche Lösung finden Sie hier:https://stackoverflow.com/questions/30078679/nginx-conf-w-multiple-maps-to-same-variable

Andere Tipps

Dies ist ein NGINX-Problem.

Das Hinzufügen zu einer conf-Datei löste unser Problem

location /en {
 rewrite ^/en(.*)$ /en/index.php last;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top