it-swarm.com.de

Wie konfiguriere ich ein Multisite-Netzwerk mit zufälligen Hostnamen?

Ich versuche, ein frisch installiertes und funktionsfähiges WordPress in ein Netzwerk mit mehreren Standorten umzuwandeln. Aber ich habe Probleme wegen unserer Apache-Konfiguration.

Wir verwenden Apache, um Anfragen für domain.com zufällig an einen von zwei Anwendungsservern umzuleiten: app1.domain.com oder app2.domain.com. Das Problem ist, dass WordPress zu DOMAIN_CURRENT_SITE (definiert in wp-config.php) umleitet, wenn die aktuelle Browserdomäne davon abweicht. Dies führt zu einer 310-Umleitungsschleife. Hier ist ein Beispiel dafür, was passiert:

  1. Benutzer fordert domain.com/apps/wordpress/ an
  2. Apache leitet zu app1.domain.com/apps/wordpress/ weiter
  3. Da die Weiterleitungsdomäne nicht mit DOMAIN_CURRENT_SITE übereinstimmt, leitet WordPress zu DOMAIN_CURRENT_SITE (domain.com/apps/wordpress/) weiter.
  4. Kehren Sie zu Schritt 1 zurück und wiederholen Sie den Vorgang

Ich würde gerne alle WordPress-Links und -URLs auf domain.com setzen und WordPress ignorieren lassen, dass app1.domain.com oder app2.domain.com wird tatsächlich abgerufen. Ist das möglich?

Hier sind die relevanten Apache Conf-Dateien (vereinfacht), falls ich nicht ganz klar bin:

application_servers.conf:

domain.com-prod-http  app1.domain.com:80|app2.domain.com:80

httpd.conf:

RewriteMap server rnd:conf/application_servers.conf
RewriteRule ^/apps/*([^/]*)/*(.*) http://${server:domain.com-prod-http}/apps/$1/$2 [P,L,QSA]
1
Zac

Nachdem ich ein paar Tage lang mit dem Kopf darauf geschlagen hatte, fand ich eine Lösung, die funktioniert.

Füge einfach folgendes zu wp-config.php hinzu:

if ( isset( $_SERVER['HTTP_X_FORWARDED_Host'] ) ) {
    $_SERVER['HTTP_Host'] = $_SERVER['HTTP_X_FORWARDED_Host'];
}

Dadurch wird WordPress gezwungen, die angeforderte Domäne anstelle der Proxydomäne zu verwenden.

1
Zac