1

在 Contao 3.5.9

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

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

我无法登录管理员。

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

阅读它,似乎基本 url 是在 admin 中设置的,这意味着它可以在 db 的某个地方找到。

我已经搜索了数据库转储,但找不到它。

如何更改基本 url 的协议?

4

1 回答 1

7

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(虽然只有德语)。

于 2016-04-22T09:29:41.077 回答