升级Drupal

时间:2015-09-08 01:15:23

标签: php drupal drupal-7

我相信我在升级Drupal时遵循了说明(7.33 - > 7.39),但设法打破了它。

设置:Drupal站点位于反向代理后面:

<Location /app>
  ProxyPass http://back.example.com/drupal
  ProxyPassReverse http://back.example.com/drupal
  ProxyPassReverseCookiePath /drupal /app
</Location>

sites/default/settings.php中,有这一点:

$conf['reverse_proxy_header'] = 'HTTP_X_FORWARDED_FOR';
if (!empty($_SERVER[$conf['reverse_proxy_header']])) {
  $base_url = 'http://front.example.com/app';
}

问题:虽然某些表单似乎有效,但生成正确的action属性(<form action="/app/..." ...>),大多数(特别是管理区域中的所有内容)都忽略$base_url,生成{ {1}},所以提交明显失败。

我查看了源代码,但我无法弄清楚它是如何工作的,因为据我所见,<form action="/drupal/..." ...>是从action生成的,从drupal_build_form读取操作数据,该数据由element_info('form')填充,然后调用system_element_info - 而request_uri()中没有关于request_uri()的内容。

我试图用$base_url清除缓存,以防万一我在数据库中遗漏了某些东西,但它没有帮助。

编辑:似乎大多数链接都在调用drush函数,这是正确的。但是没有为表单的url($path)属性调用它,除了从插件呈现的表单(并且似乎不使用action,但调用element_info到构建其url)。

EDIT2:如果不清楚,action具有正确的值;它只是没有被应用(我无法看到它将被应用到哪里)。

1 个答案:

答案 0 :(得分:1)

问题确实存在于List aList = Collections.synchronizedList(new ArrayList()); 调用system_element_info而不是$ base_url ......

但是和drupal一样,你可以改变一切:

request_uri