Contao: 如何更改基地 url 的协议?

Contao: How can I change the protocol of the base url?

Contao 3.5.9

我已经上传到新服务器并且使用的是与原始安装不同的域。我也在使用 https://

许多需要的资源没有被加载,因为系统将基础 url 设置为 http:// 它在基础 url 中使用了正确的域名,但使用了错误的协议。

我无法登录管理员。

我搜索了 Google(关于 Contao 的内容不多),发现了这个:http://blog.qzminski.com/article/move-the-contao-to-another-server.html

看了下,好像是在admin里设置了baseurl,也就是说在db的某个地方可以找到。

我搜索了数据库转储但找不到。

如何更改基地的协议url?

Contao 使用以下内容来确定当前请求是否通过 SSL 完成 » \Environment::get('ssl'):

/**
 * Return true if the current page was requested via an SSL connection
 *
 * @return boolean True if SSL is enabled
 */
protected static function ssl()
{
    return ($_SERVER['SSL_SESSION_ID'] || $_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1);
}

您的服务器环境可能没有设置这些 $_SERVER 全局变量中的任何一个。例如,如果您使用 SSL 代理,就会出现这种情况。

如果您是这种情况,则可以通过插入

来扩展 SSL 检测
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO']) 
{
    $_SERVER['HTTPS'] = 1;
}

进入你的/system/config/initconfig.php。例如,参见 https://github.com/contao/core/issues/7542(尽管只有德语)。