我正在使用Drupal建立一个网站,该网站通过bitbucket管道部署在实时服务器上。通常,当我浏览myurl.com/user时,它会将我重定向到myurl.com/user/login但是现在我收到此错误:
Redirects to external URLs are not allowed by default, use \Drupal\Core\Routing\TrustedRedirectResponse for it.
我已经设置了“trusted_host_paterns”但是这似乎没有解决问题。可信主机模式:
$settings['trusted_host_patterns'] = array(
'^myurl\.com$',
);
以防其他人来到这里:您也可以将多语言站点迁移到不同的服务器/本地主机,并且在您的数据库中仍然是旧的重定向域,现在将不再起作用。
要解决此问题,您需要手动更改数据库中的以下值。转到dr_config并搜索language.negotiation
在隐秘的blob中,搜索有类似的东西
{s:6:"source";s:6:"domain";
并将其更改为
{s:6:"source";s:6:"path_prefix";
之后清空所有cache_ *表(强制重新处理配置),那么它很可能会工作。
如果你有这个,因为多语言网站没有在localhost上找到域,请输入settings.php:
$config['language.negotiation']['url']['domains']['en'] = 'my-en-url.localhost';
$config['language.negotiation']['url']['domains']['de'] = 'my-de-url.localhost';
$config['language.negotiation']['url']['domains']['es'] = 'my-es-url.localhost';
$config['language.negotiation']['url']['domains']['fr'] = 'my-fr-url.localhost';