Frage

Im Moment arbeite ich an einer Drupal-Seite (6 *), die, wenn sie im Produktionsmodus wird durch eine Art von HTTP-Proxy zugegriffen werden, was bedeutet, dass ich alle die Links für mein eigenes Thema, wenn die $_SERVER['HTTP_X_FORWARDED_SERVER'] neu zu schreiben Variable wird auf die Domäne Menschen gesetzt werden aus auf die Website zugreifen.

Die Seite hat eine Menge interner Verlinkung, vor allem durch Views. Mein Gedanke ist, dass der einfachste Weg, dies zu lösen wäre in den url() Haken und / oder die l() Funktionen und Post-Prozess die URL, bevor es zurückkehrt, wenn HTTP_X_FORWARDED_SERVER gesetzt.

Mein Problem ist, dass ich nicht herausfinden kann, wie man in diese Funktionen Haken, oder ob es sogar möglich, ohne den Kern zu berühren, hat jemand hatte dies zu tun? Wie haben Sie es lösen?

UPDATE: Ich denke, ich habe vergessen zu erwähnen, dass der Proxy nicht auf Root-Ebene der Proxy-Domäne befindet, also muß ich alle Urls (sowohl interne Links und Pfade durch das System zu CSS-Dateien und Bildern usw. erzeugt wird) neu zu schreiben

Beispiele:

proxy.com/path -> site.com/lots/of/dirs

proxy.com/path/node/1 -> site.com/lots/of/dirs/node/1

proxy.com/path/sites/all/themes/mytheme/my.css -> site.com/lots/of/dirs/sites/all/themes/mytheme/my.css

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob ich völlig verstehen, was Sie brauchen, aber ich glaube, Sie einen Blick auf die custom_url_rewrite_inbound () und custom_url_rewrite_outbound () Funktionen.

Andere Tipps

Am Ende habe ich den Kern leicht zu modifizieren, in bootstrap.inc die folgenden Zeile ersetzt

$server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));

mit

$host = $_SERVER['HTTP_X_FORWARDED_HOST'] ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST']; 
$server = explode('.', implode('.', array_reverse(explode(':', rtrim($host, '.')))));

Dann habe ich gerade einen neuen Standortordner mit meinem proxy.com url und geändert $base_url und $cookie_domain im settings.php einrichten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top