【问题标题】:Static Publishing and HTTPS静态发布和 HTTPS
【发布时间】:2017-11-23 00:44:40
【问题描述】:

关注这个问题:Static Publishing in Silverstripe on Large Sites

我们一直在从这个 fork (https://github.com/Focus-Flow/silverstripe-staticpublishqueue/) 实现该模块,它在本地运行良好。我们做了一些修改来实现我们自己的分类页面,但没什么特别的。

现在唯一的问题是当我们在我们的服务器上进行测试时,它在本地使用 https 而不是 http,没有任何工作了。我一直在尝试将 FileSystemPublisher.php 文件中的一些内容更改为使用 https 而不是 http,但它没有做任何事情。

另一件事,它可能是链接的,当我进入我们子网站的管理后端时,编辑页面中的所有页面链接都在“http”中,显然服务器上有一个 https 重定向。

所以我想我有两个问题:

  • 如何使静态发布队列与 https 一起工作?

  • 如何让 silverstripe 明白所有的网站页面都应该是 https 而不是 http,所以它会在后台显示这种方式?

提前致谢。

【问题讨论】:

  • 我遇到了同样的问题。我们可以解决此问题的唯一方法是将以下行添加到我们的 _config.php 文件中:Director::setBaseURL('https://www.example.com/');
  • 是的,我也想过这样做,但它不能与子网站一起使用,对吧?
  • 好点。我还没有尝试使用子站点模块的静态发布者。
  • 它实际上可能符合您的想法,但我现在遇到的问题是页面已正确缓存,但它仍然使用 http 链接到 css 和 js,所以它无效,有什么想法吗?

标签: silverstripe


【解决方案1】:

Subsite 有一个名为absoluteBaseURL() 的方法,因此您可以在Page_Controller::init() 中尝试此方法:

$currentSubsite = Subsite::currentSubsite();

Director::setBaseURL($currentSubsite->absoluteBaseURL());

当然你需要配置子站点的域,包括 https

【讨论】:

  • 谢谢,它成功了。现在我有一个新问题,但是 https 问题解决了 :)
  • 供参考,需要为:$currentSubsite = Subsite::currentSubsite(); if ($currentSubsite) Director::setBaseURL($currentSubsite->absoluteBaseURL());否则会出现错误 500 或管理面板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 2014-01-02
  • 2022-01-06
  • 2014-01-06
  • 2016-08-31
相关资源
最近更新 更多