TYPO3 强制跨域页面的内部链接在新闻中使用 https



我的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

News A到第 1 页的链接工作得很好,但是当从新闻 B 链接到Page 2Page 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中的链接渲染执行此操作?

这与新闻扩展无关,而是 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'][]
  = VendorExtKeyHooksFrontendContentPostProc::class . '->run';

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

命名空间供应商\

extKey\Hooks\前端;

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);
    }
}

最新更新