Ein Kunde möchte, dass sein Multistore-Shop folgendermaßen eingerichtet wird:
- http://www.domain1.org/de/ -> Website 1, Store-Ansicht 1
- http://www.domain1.org/en/ -> Website 1, Store-Ansicht 2
- http://www.domain1.ch/de/ -> website 2, store view 3
- http://www.domain1.ch/fr/ -> Website 2, Store-Ansicht 4
- http://www.domain1.ch/it/ -> Website 2, Store View 5
- ...
Dies ist ein Beispiel, aber es können noch viele weitere Unterordner vorhanden sein. Was ist der beste Ansatz, um verschiedene Unterordner für verschiedene Geschäftsansichten / Websites zu verwalten?
Ich weiß , dass eine Lösung Unterordner genannt zu erstellen de
, en
usw. und kopieren Sie die index.php und .htaccess in die entsprechenden Unterordner.
Möglicherweise gibt es auch einige Problemumgehungen (Symlinks für index.php, vHost-Konfiguration anstelle von .htaccess), um die Duplizierung von Dateien zu minimieren, aber ich möchte eine Lösung finden, bei der ich keine Änderungen im Dateisystem vornehmen muss, sondern nur Alles per Konfiguration erledigen.
AKTUALISIEREN
Wir haben mit dem Enterprise-Support festgestellt, dass dies am besten durch das Erstellen von Unterordnern möglich ist.
Am Ende haben wir es so gemacht:
- Erstellen Sie ein "Sprachordner" -Verzeichnis
- Erstellt eine Kopie von index.php im Verzeichnis zusammen mit einem angepassten .htaccess und Symlinks zu den Magento-Ordnern (app /, errors /, ...)
- Symlinks "de", "en" usw. im Magento-Stammverzeichnis erstellt, die auf das Verzeichnis "languagefolders" verweisen
Auf diese Weise können wir eine neue Sprache hinzufügen, indem wir einen neuen Symlink erstellen (zB "fr").
quelle
Antworten:
Es ist sehr einfach, mehrere Domains / Pfade basierend auf URLs bereitzustellen. Wie bereits erwähnt, ist die einfachste Einrichtung (nur Konfiguration) möglich, wenn die eindeutigen
core/store
Codes im Pfad als Unterordner verwendet werden können . Dies erfordert eine der folgenden Möglichkeiten:Zu # 3: Seit 1.4 Magento wurde es dem Webserver ermöglicht, den laufenden Kontext ( Website oder Geschäft ) sowie den speziellen Code, der verwendet werden soll, zu bestimmen . Aus index.php :
Während Umgebungsvariablen verwendet werden, um die Anwendung zu initialisieren, ist es möglich, das System zu beeinflussen, bevor PHP überhaupt hochfährt. Mit Apache und
mod_rewrite
dies kann für Unterordner mit ein bisschen Trick geschehen:Apache ist nervös mit Umgebungsvariablen und Unterordnern, wie diese hervorragende SO-Antwort zeigt . Die ersten beiden Zeilen ergeben,
$_SERVER["REDIRECT_MAGE_RUN_CODE"] = 'deutsch';
während die letzten beiden Zeilen die benötigten liefern$_SERVER["MAGE_RUN_CODE"] = 'deutsch';
. Es gibt zahlreiche andere Tricks, aber die oben genannten hat mich schon gebissen.Das Endziel sollte die anfängliche Erkennung sein, soweit dies vernünftig ist (Geoip + Mehrsprachigkeit), während der Benutzer das Store-Cookie festlegen muss, mit dem die Logik bei nachfolgenden Anforderungen umgangen / schrittweise durchlaufen werden kann.
quelle
mode_rewrite
) , basierend aufHTTP_HOST
+ Unterordner Ebene 1.Wenn die eingerückten URLs (Unterordner) denselben Namen wie die Geschäftscodes haben können (warum nicht?), Können Sie sie einfach aktivieren
Configuration > Web > Url options > Add Store Code to Urls
.quelle
Add store codes to url
Glauben Sie jedoch, dass es möglich wäre, die Einstellung zu einer Storeview-Einstellung zu machen ? magento.stackexchange.com/questions/60686/... = nähme an, es 1 multi mit September - Domänen, die anderen Verwendungen / en und / frWir haben genau das getan
Wir haben mit dem Enterprise-Support festgestellt, dass dies am besten durch das Erstellen von Unterordnern möglich ist.
Im Backend setzen wir den Store
base url
aufdomain.com/en
Wenn Sie nginx verwenden, ist ein Update Ihrer Standortverarbeitung erforderlich, um index.php auch im neuen Unterordner zu verarbeiten. Dies muss für jeden neuen Übersetzungsordner durchgeführt werden
quelle
location @rewrite { rewrite /(../)? /$1index.php; }
Es gibt einen Eintrag in der offiziellen Magento-Wissensdatenbank , der genau das beschreibt.
Wenn Sie mit Apache arbeiten, vergewissern Sie sich, dass alle Virtual Host-Einträge (für jede Domäne) auf dasselbe Dokumentstammverzeichnis verweisen, in dem sich Ihre Magento-Installation befindet. Das gilt für mehrere Domains.
Das Nächste (und Letzte) ist der .htaccess im selben Magento-Installationsordner. .htaccess ist eine leistungsstarke Konfigurationsdatei auf Verzeichnisebene, in der Sie Regeln für jede Serveranforderung festlegen können. Sie müssen dort also alle verschiedenen (Unter-) Domänen- / Ordneraktionen ausführen und die richtigen Servervariablen festlegen, die Magento bei der Initialisierung verwendet.
Nachdem Sie die Serverkonfiguration abgeschlossen haben, müssen Sie in Magento admin (system - configuration - general - web) für jeden Store unterschiedliche Basispfade festlegen.
Befolgen Sie also unbedingt den offiziellen Leitfaden (der auch der bevorzugte Weg ist), und die Dinge sollten reibungslos funktionieren.
quelle
Zuerst müssen Sie einige Einstellungen im Magento Admin-Panel vornehmen, dann ein Unterverzeichnis erstellen, die Datei index.php und die Datei .htaccess in das Unterverzeichnis verschieben und kleinere Änderungen an der Datei index.php vornehmen.
Hier finden Sie ein vollständiges Beispiel dafür.
quelle