Unterschiedliche Domain für den Bereich der Website

8

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.

    
Olemak 01.02.2016, 08:19
quelle

4 Antworten

8

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.)

Making WP akzeptieren mehrere Hostnamen für Anfragen

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:

%Vor%

(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.

Umleiten einer Seite zu einer anderen Domäne

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%

Entfernen des Seiten-Slugs von einer Seite in WP

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.

Fixieren von Permalinks

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.

    
ojrask 08.02.2016 15:16
quelle
5
  

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

%Vor%

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.

    
Shomz 08.02.2016 14:11
quelle
0

Wenn Sie sich nicht mit wp-Filtern oder Ihren htaccess-Regeln anlegen möchten

Sie können einfach ein index.html in einem Verzeichnis mit dem Namen / b / erstellen oder erstelle eine Seite mit einem Slug mit dem Wert 'b' a.com/b mit diesem Code in plain html

%Vor%     
nodws 13.02.2016 08:59
quelle
0

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 ...

    
quelle

Tags und Links