Es gibt zwei Websites, nennen wir sie a.com und b.com ; Sie waren bis jetzt völlig getrennt. Da es jedoch "Synergien" gibt, möchte der Kunde b.com Teil von a.com machen (gleiche Mediathek, Benutzer, Host, Datenbank usw.) ... aber mit eigener Domain und eigenem Design. Eine Site innerhalb der Site mit einer eigenen Domain.
SO, im Grunde genommen: Wenn ein Nutzer zu einem bestimmten Teil der Website geht, sagen wir a.com/b, sollte sich die URL zu b.com ändern.
Ich denke, ich kann das mit virtuellen Apache-Hosts lösen; Ich fand diese Frage, wie es mit Yii geht: Weisen Sie nur zwei Domänen eine Domäne zu
Aber ich benutze Wordpress (bereits die Hauptseite), also sollte ich mit Vanille PHP und Apache Tweaking gehen. Alle Tipps und Hinweise sind willkommen.
Bitte beachten Sie : Es handelt sich nicht um eine Multisite, da dies die Vorteile einer gemeinsamen Mediengalerie und von Benutzern usw. zunichte machen würde.
Wenn Sie eine einzelne WordPress-Installation verwenden möchten, möchten Sie entweder WordPress Multisite (was Sie nicht tun wollen) mit einem Domain-Mapping-Plugin ausführen oder WordPress dazu bringen, einen beliebigen Anfrage-Hostnamen (Domäne) zu akzeptieren auf und diene Content bedingt auf jeder Domain.
(Im Folgenden wird davon ausgegangen, dass Sie sowohl example.com
als auch secondary.com
steuern und beide auf denselben Server verweisen, auf dem auch die WordPress-Installation läuft. Auch die folgenden Beispiele wurden ohne echte Tests oder Validierung direkt aus meinem Kopf gezogen beteiligt ist, kann es funktionieren oder nicht wie es ist.)
Normalerweise ist WordPress an einen einzelnen Hostnamen / eine Domain gebunden, wo es Seiten und Inhalte bereitstellen kann. Die Domain wird beispielsweise in den wp_options
siteurl
und home
Zeilen als http://www.example.com
gespeichert.
Sie können dies in wp-config.php
überschreiben, indem Sie die Konstanten WP_SITEURL
und WP_HOME
PHP verwenden. Zuerst müssen Sie sicherstellen, dass die Hauptdomäne (z. B. maindomain.com) ordnungsgemäß auf die wp_options
-Tabellenzeilen siteurl
und home
eingestellt ist. Dann müssen Sie die wp-config.php
-Datei anpassen, damit WP jede Domäne als solche akzeptiert:
(Stellen Sie sicher, dass Sie bei Bedarf zwischen HTTP und HTTPS anpassen.
Nun sollte Ihre WP-Installation einwandfrei funktionieren, wenn eine Domain auf den Server verweist. Sie können so viele Domains haben, wie Sie möchten, und alle laden WP beim Zugriff.
Sie können entweder .htaccess oder WP-Code für Weiterleitungen verwenden. Wenn die Umleitung anwendungs- / standortspezifisch ist und überall funktionieren sollte, versuchen Sie, WP-Code zu verwenden, da dies eher in Quellcode-Repos und ähnlichem nachvollzogen werden kann.
%Vor% Fügen Sie das einem Plugin oder dem functions.php
eines Themas hinzu. Wenn jetzt jemand auf die Seite b
in der Hauptdomain zugreift, wird er zu secondarydomain.com
umgeleitet.
Um dies mit einem .htaccess zu erreichen, können Sie Folgendes versuchen:
%Vor% Jetzt haben Sie einen Benutzer bei http://www.secondary.com
, aber der Benutzer sieht die Startseite Ihrer WP-Installation anstelle des Inhalts der Seite b
.
Wenn .htaccess neu geschrieben wird, können Sie diese Domänenanforderungen gegebenenfalls an ein bestimmtes "Unterverzeichnis" weiterleiten.
%Vor% Diese Regel prüft zuerst, ob die Anfrage gegen den Domain-Namen secondary.com
gerichtet war. Wenn dies der Fall ist, schreibt der Server alle Anfragen auf die WordPress-Seite b
und seine Unterseiten um.
Wenn nun jemand http://www.secondary.com
öffnet, sollte er auf http://www.secondary.com/b
abgebildet werden und stattdessen die Seite anzeigen.
(Hinweis: Ich habe die obige Regel nicht getestet, so dass sie funktioniert oder nicht wie sie ist.
Nun hast du ein Problem mit Permalinks bezüglich der Seite b
. Wenn der Permalink abgerufen wird, wird http://www.example.com/b
zurückgegeben, wenn stattdessen http://www.secondary.com
zurückgegeben werden soll.
Das Hinzufügen eines Filters für Permalinks sollte dieses Problem beheben:
%Vor%Dies ist ein oberflächlicher Ansatz, bei dem nicht berücksichtigt wird, wie sich Medien oder Benutzer verhalten. Sie müssen überprüfen, dass beide Domänen stammursprungsübergreifende Anfragen zulassen und dass Sitzungscookies für Benutzer bei Bedarf für stammstartübergreifende Sitzungen ordnungsgemäß gespeichert werden.
Was ich auch vorschlagen würde, ist zu untersuchen, wie man sich in den Medien-Upload-Prozess einklinkt, damit zwei WP-Installationen dasselbe Verzeichnis und dieselben Daten verwenden. Das selbe Verzeichnis ist mit dem upload_dir
Filter erreichbar und die Anhänge werden ähnlich wie die Posts gespeichert, so dass Du Uploads auf zwei Seiten mit wp_insert_post
oder ähnlichem durchführen kann, nehme ich an.
Zusätzlich können Sie zwei WP-Installationen mit einer einzelnen Benutzertabelle verwenden, indem Sie wp-config.php
trickery verwenden.
SO, im Grunde genommen: Wenn ein Nutzer zu einem bestimmten Teil der Website geht, sagen wir a.com/b, sollte sich die URL zu b.com ändern.
Klingt so, als müssten Sie nur eine Datei / Controller / Post erstellen, die sich in a.com/b
befindet und den Browser auf b.com
umleitet.
Der einfachste Weg besteht darin, im Stammverzeichnis ein Verzeichnis namens b
zu erstellen und die Apache-Standarddatei dort einzufügen (index.htm, index.php usw.), und diese Datei hätte den Umleitungsheader.
Der beste Weg, dies zu tun, ist eine 301-Umleitung mit .htaccess
. Etwas wie
oder mit einem Platzhalter:
%Vor%(Es gibt Tonnen von htaccess Ressourcen online)
Das sind die zwei Extreme, und es gibt viele andere Möglichkeiten dazwischen. Sie sollten diejenige, die für Sie am besten funktioniert, basierend darauf, wie viele Umleitungen es gibt, geben. Gibt es irgendwelche Muster, möchten Sie sie erzeugen können? dynamisch, usw.
Die Probleme, die Sie hier haben könnten (Sie haben das Problem nie vollständig beschrieben, so sage ich nur), ist für den Fall, dass Sie zu a.com zurückkehren möchten und Sie die ähnliche Umleitung auf b.com nicht einrichten können . In diesem Fall schlage ich vor, dass du einfach auf a.com/b sagst, während b.com in einem Iframe rendert.
Fügen Sie einfach einen © Hinweis unten auf b.com hinzu und machen Sie ihn Teil von a.com (oder fügen Sie einfach "Diese Seite ist Teil von a.com" oder etwas ähnliches) hinzu. Wenn Sie a.com mit b.com verknüpfen möchten, fügen Sie einen Link wie
hinzu
& lt; a href="b.com" & gt; b.com & lt; / a & gt;
. Falls Sie einen Domain-Namen innerhalb von a.com haben möchten, führen Sie einfach eine Umleitung von a.com/b nach b.com durch ...