Canonical Redirect für CDN verhindern

Ich möchte meine gesamte WordPress-Website über ein CDN ausführen, um die performance zu verbessern (HTML, nicht nur statische CSS / JS / Medien). Nehmen wir an, der Ursprungsserver ist example.com und www.example.com ist die URL, bei der der Datenverkehr durch die CDN-Einrichtung als Ursprungs-Pull weitergeleitet wird.

Das Problem ist, dass beim Besuch von www.example.com eine Endlosschleife erstellt wird, die die Anfrage an WordPress weiterleitet, die sich die Anfrage ansieht und sagt: “Eigentlich sollte dies www.example.com sein, entsprechend der in den Einstellungen definierten home_url und site_url ” Sooo…

1) Gibt es einen einfachen Weg, WordPress dazu zu bringen, unter einer bestimmten Bedingung nicht mehr auf www umzuleiten (zum Beispiel nach den x-forwarded-for-Headern zu suchen, die zu Anfragen hinzugefügt werden, die durch das CDN kommen)?

2) Muss ich eine Konstante festlegen, um die Site-URL für Anfragen aus dem CDN zu ändern, und dann eine Art Callback für die Ausgabezwischenspeicherung einrichten, um http://example.com zu http: //www.example zu ersetzen . com ?

Ich weiß, dass es Plugins gibt, die das handhaben. Ich möchte mein eigenes rollen, damit ich herausfinden kann, wie das alles funktioniert. Jede Anleitung würde sehr geschätzt werden.

Solutions Collecting From Web of "Canonical Redirect für CDN verhindern"

Dies kann nicht so funktionieren, wie Sie möchten. Wenn wordpress auf example.com steht, zeigen alle automatisch generierten Links auf example.com auch für Seiten, die sich auf dem CDN unter der Domain http://www.example.com befinden. Dies führt dazu, dass nach der ersten Seite, die von der CDN bedient wird, viele andere Seiten direkt von WordPress bedient werden.

  1. von der inspektion des codes, ist der code, der es tut tief in redirect_canonical also entweder müssen sie ihre eigene redicrection schreiben und so etwas tun

    remove_action (“template_redirect”, “redirect_canonical”);

    add_action (‘template_redirect’, ‘wpsr12150_redirect_canonical’);

    function wpsr12150_redirect_canonical () {// Code ohne WWW-Weiterleitung}

aber es ist wahrscheinlich einfacher, es in einer .htaccess-Datei zu handhaben, zum Beispiel, dass es immer das www von eingehenden Anfragen entfernt

  1. Ja!

Ich habe es geschafft, das zum Laufen zu bringen. Hier sind die Details von dem, was ich getan habe, falls Sie dasselbe tun wollen: https://gist.github.com/kingkool68/7421460