我目前正在开发一个 Drupal 站点 (6.*),在生产模式下将通过某种 http 代理访问该站点,这意味着如果$_SERVER['HTTP_X_FORWARDED_SERVER']
变量设置为,我将不得不为我的自定义主题重写所有链接人们将访问该站点的域。
该网站有很多内部链接,主要是通过Views
. 我的想法是,解决这个问题的最简单方法是挂钩url()
和/或l()
函数,并在返回之前对 url 进行后处理(如果HTTP_X_FORWARDED_SERVER
已设置)。
我的问题是我不知道如何挂钩这些功能,或者如果它甚至可以不触及核心,有没有人必须这样做?你是怎么解决的?
更新:我想我忘了提到代理不会位于代理域的根级别,所以我需要重写所有 url(内部链接和系统生成的路径到 css 文件和图像等)
例子:
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