Ich warf diese Frage auf Twitter herum und bat einige andere Kernentwickler um Feedback. Mein Bauchgefühl war es, $current_url
entweder filterbar zu machen oder durch eine Funktion erzeugt zu werden, die überschrieben werden konnte. Dies ist anscheinend der falsche Weg.
@markoheijnen :
@EricMann Das Zurücksetzen$_SERVER['HTTP_HOST']
klingt nach einer hackigen Lösung. Der gleiche Code kann sich dann in der Datei wp-config.php befinden
@Nacin :
@EricMann @markoheijnen Das Einfügen in wp-config ist korrekt. Es ist nicht die Aufgabe von WP, Reverse-Proxy-Situationen zu behandeln.
@EricMann @markoheijnen Idealerweise sollten sie richtig eingestellt werden, bevor WP (oder sogar PHP) geladen wird. wp-config ist die Alternative.
@markoheijnen :
@nacin @ericmann In diesem Fall ist der Server / Proxy falsch konfiguriert. So kann ich sehen, warum es dann in wp-config behoben werden sollte
Aus den Klängen dieser Konvertierung haben Sie zwei Möglichkeiten:
- Konfigurieren Sie Ihren Proxy neu, um die richtigen Hostwerte festzulegen, bevor es überhaupt zu PHP / WP kommt.
- Manuell bereinigen und
$_SERVER['HTTP_HOST']
in Ihrer wp-config.php
Datei einrichten .
Ich habe ein bisschen mehr darüber nachgedacht, und hier ist ein tatsächlicher Code, den Sie wp-config.php
zum Einrichten hinzufügen können (basierend auf dem Hacky-Patch, der die Kerndateien ändert):
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_HOST'] ) ) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
Dies sollte die Dinge so einrichten, dass die Standard-Kerndateien keine Änderungen benötigen, um richtig zu funktionieren. Beachten Sie jedoch, dass ich dies nicht testen kann, da ich keine Proxy-Einrichtung habe, anhand derer ich es überprüfen kann. Wenn dieser Code Ihre Situation nicht behebt, melden Sie sich bitte zurück, und wir können etwas anderes ausprobieren.