Mehrere Domänen verweisen auf dieselbe Website

Mehrere Domänen verweisen auf dieselbe Website

Ich bin ein ziemlich begeisterter Programmierer, bin aber vor Kurzem in die Webentwicklung gewechselt, also entschuldige ich mich, wenn die Frage etwas albern ist.

Ich erstelle eine E-Commerce-Webanwendung, die mehrere Domänen unterstützen soll. Nehmen wir an, ich habe zwei Geschäfte in meiner App, von denen jedes seine eigene benutzerdefinierte Domäne hat.

Die App befindet sich hier: www.main-app.com
Der Store 1 befindet sich hier: www.store1.com
Der Store 2 befindet sich hier:www.store2.com

Ich muss alle eingehenden und ausgehenden Anfragen umleiten store1.comund store2.comdabei main-app.comeine ID übergeben, nämlich die Store-ID. Die Store-ID wird zum Laden aller Komponenten jedes Stores verwendet.

Ich habe es geschafft, CNAME-Einträge zu Store1 und Store2 hinzuzufügen, die auf verweisen www.main-app.com. Soweit, so gut. Wenn ich www.store1.comin meinen Browser tippe, wird die Haupt-App auf dem Bildschirm angezeigt. Aber wie kann ich die Store-ID weitergeben, damit bekannt ist, welcher Store geladen werden soll?

Welches wäre der beste Ansatz, um diese Funktion zu ermöglichen?

Im Wesentlichen möchte ich eingeben www.store1.comund www.main-app.comerhalte eine Anforderung zum Laden von store1. Ich möchte keine Domänenweiterleitung verwenden, www.store1.comda der Benutzer nach dem Eintippen beispielsweise zu etwas wie weitergeleitet wird www.main-app.com?storeId=1.

Ich hoffe, ich habe mich verständlich ausgedrückt.

Antwort1

Der Webbrowser sendet eineHostHeaderzusammen mit jeder Anfrage an Ihre Webanwendung. Dieser Header enthält die Domäne, die für den Zugriff auf die Site verwendet wird. Sie können diesen Header verwenden, um das Erscheinungsbild der Site basierend auf der Domäne zu ändern, die der Benutzer für den Zugriff verwendet.

Antwort2

Eine beliebige Anzahl von Datensätzen kann auf denselben Server verweisen, wodurch der Server Anfragen von allen Domänen erhält. Normalerweise wird dies verwendet, um mehrere Domänen mit einem Webserver zu hosten. Die Server wissen seit HTTP 1.1, für wen die Anfrage bestimmt ist, da im Header ein Feld für den angeforderten Hostnamen hinzugefügt wurde.

Wenn Sie bei Apache mehrere Domänen hosten, erstellen Sie einen virtuellen Host und geben ihnen normalerweise jeweils einen Pfad zum Speicherort ihrer Dateien. Für das, was Sie beschreiben, würden Sie jedoch für jeden Store einen virtuellen Host erstellen, aber alle Stammordner auf denselben Pfad setzen, der die Dateien für Ihre Haupt-App enthält.

In der Anwendung selbst benötigen Sie nicht einmal eine ID, da alle Anfragen mit einem Feld versehen sind, das Ihnen mitteilt, für welchen Host die Anfrage bestimmt ist. Damit können Sie alle Daten indizieren, die sich zwischen den Stores unterscheiden. In diesem Fall ist es nicht erforderlich, etwas umzuleiten.

Apache kann den Prozess mit einer RewriteRule automatisieren, die erfordertmod_umschreibeninstalliert und aktiviert. Sie sagen ihm, dass er Seiten mit einem anderen Parameter aufrufen soll, je nach angeforderter Domäne. Sie könnten ihm beispielsweise sagen, dass er jeder Anforderung eine Store-ID hinzufügen soll, wie Sie vorgeschlagen haben, und diese Store-ID verwenden, um die Logik zu steuern. Andere Webserver haben wahrscheinlich etwas Entsprechendes, ich verwende nur Apache, um dies zu beschreiben, da ich diesen am besten kenne.

verwandte Informationen