0

我的 TYPO3 网站有多个域,这些域具有从内部新闻到另一个域中的另一个页面的链接。

Domain A (with SSL in frontend)
  Page 1
  News (folder)
  News A
  News B
Domain B (with SSL in frontend)
  Page 2
  Page 3

到第 1 页的链接News A工作得很好,但是当从新闻 B 链接到Page 2orPage 3时,url 生成正确,但方案总是http

示例News A<a href="/Page-1.html">Page 1</a>

示例News B<a href="http://domain-b/Page-2.html">Page 2</a>

有没有办法将 url 生成配置为在链接到给定域中的任何内容时始终使用 https 作为方案?我怀疑这必须为 tx_news 中的链接渲染完成?

4

1 回答 1

2

这与新闻扩展无关,而是 TYPO3 本身的一个错误 - 或者我们称它为缺失的功能,因为 TYPO3 在这个地方不知道其他域应该https用作协议。

我要解决这个问题是在输出内容之前对其进行替换。这可以通过在 中添加一个钩子来完成ext_localconf.php

// Hook for changing output before showing it
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output'][]
  = \Vendor\ExtKey\Hooks\Frontend\ContentPostProc::class . '->run';

并在文件中typo3conf/extkey/Classes/Hooks/Frontend/ContentPostProc

命名空间供应商\ExtKey\Hooks\Frontend;

class ContentPostProc
{

  public function run(array &$parameters) {
        $searchReplace = [
            'http://domain.tld' => 'https://domain.tld'
        ];
        $parameters['pObj']->content = str_replace(array_keys($searchReplace), array_values($searchReplace), $parameters['pObj']->content);
    }
}
于 2018-04-10T11:23:53.400 回答