Ich arbeite derzeit an einer Drupal-Website (6. *), die im Produktionsmodus durch eine Art von HTTP-Proxy zugegriffen wird, was bedeutet, dass ich alle Links neu schreiben muss für mein benutzerdefiniertes Design, wenn die Variable auf die Domäne festgelegt ist, auf die die Benutzer von der Site zugreifen werden.Override l() Funktion in Drupal
Die Seite hat viele interne Links, meist über Views
. Mein Gedanke ist, dass der einfachste Weg, um dies zu lösen wäre, in die url()
und/oder die l()
Funktionen zu hacken und die URL vor der Rückgabe zu bearbeiten, wenn HTTP_X_FORWARDED_SERVER
gesetzt ist.
Mein Problem ist, dass ich nicht herausfinden kann, wie man in diese Funktionen einhakt, oder wenn es sogar möglich ist, ohne den Kern zu berühren, hat jemand das tun müssen? Wie hast du es gelöst?
UPDATE: Ich habe vergessen zu erwähnen, dass der Proxy nicht auf der root - Ebene der Proxy - Domain liegt, also muss ich alle URLs (interne Links und Pfade vom System zu CSS - Dateien und Bildern etc)
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
Nach dem Blick auf mehr, ist dies wahrscheinlich der richtige Weg zu Mach es (noch nie zuvor von diesen Funktionen gehört), und es scheint den Trick zu machen, und ich werde mich für zukünftige Unternehmungen daran erinnern, danke :) Meine Hack-Lösung gab mir die Möglichkeit, für jede URL separate Einstellungsdateien zu haben Zugriff auf die Seite (einschließlich Proxies), die nützlicher ist als ich ursprünglich geplant hatte, also kann ich mich vorerst daran halten :) – Marco
Ich denke, dass Sie verschiedene eingehende URLs innerhalb von custom_url_rewrite_inbound() unterscheiden können, wenn Sie einschalten die Variable $ _SERVER ['SERVER_NAME']. – marcvangend
wahr dass :) obwohl ich auch eine Cookie-Domäne für den Proxy festlegen und eine andere Datenbankverbindung haben muss – Marco