感谢 Kleins 的回答和大量社区支持,我现在设法建立了一个运行良好的解决方案。
首先,在使用扩展realurl重写时,请记住在测试期间删除realurl_autoconf.php并清除typo3和realurl 缓存。还要检查是否在typo3 配置模块
中应用了realurl变量
解决方案 1,原始配置
只需将您的配置复制到ext_localconf.php
解决方案 2,外部化配置
这更先进,对我来说效果很好。 (不确定 Kleins 解决方案是否会更好)。
在Classes/RealUrlConf.php 中创建命名空间类并将其包含在ext_localconf.php 中。确保遵循typo3 所需的文件路径/命名空间配置约定。
Classes/RealUrlConf.php:https://pastebin.com/sg836BhJ
ext_localconf.php:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration']['coreRealUrlConf'] = 'Micke\\GenCore\\RealUrlConf->realUrlConfigurer';
如果您想像这样使用设置,您可以取消注释 Classes/RealUrlConf.php 中 pageIds 的定义和应用。
解决方案 3,将核心配置与站点扩展分开
我创建了一个核心包,它是作为我们安装中各个站点包的依赖项绘制的。因此,在我的情况下,我只设置核心中的配置(尚未应用 pageIds),也就是上面提到的配置。在这种情况下,无需取消任何注释。
然后,我为每个单独的站点包设置了一个类似的配置,它只定义 pageIds 并将核心配置应用于它们。在这种情况下,pageId 被隔离在各个站点包中,而大部分配置位于核心中。
Classes/RealUrlConf.php:https://pastebin.com/A2xUvrJm
ext.localconf.php:
// Include realurl configuration with page IDs
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration'][$_EXTKEY . 'realUrlVars'] = 'Micke\\RieSitepack\\RealUrlConf->realUrlConfigurer';
祝你好运!