如何配置EXT:news的routeEnhancer使其在重定向模块跨语言正常工作?
问题描述
在TYPO3 v12.4 + News v11.4.1环境中:
- 新闻扩展的
routeEnhancers配置在列表、详情及分类页面运行正常 - 配置
linkhandler后,可在重定向模块中选择新闻条目作为目标 - 未启用新闻的
routeEnhancers时,带语言参数(如L=1)的重定向符合预期 - 启用
routeEnhancers后,生成的重定向URL会同时包含两种语言内容,示例:www.domain.com/newsdetailpage-default-lang/newstitle-target-langguage
解决建议
检查routeEnhancers的语言配置
确保新闻的routeEnhancer配置中,多语言场景的_language设置正确,明确语言相关路由规则,避免默认语言页面路径混入目标语言URL。例如在新闻的routeEnhancer配置块中补充语言适配规则:routeEnhancers: NewsPlugin: type: Extbase extension: News plugin: Pi1 routes: - routePath: '/{news-title}' _controller: 'News::detail' _arguments: news-title: news defaultController: 'News::detail' requirements: news-title: '^[a-zA-Z0-9\-]+$' aspects: news-title: type: PersistedAliasMapper tableName: tx_news_domain_model_news routeFieldName: path_segment _language: type: LanguagePrefixAspect default: '' languageField: sys_language_uid routeFieldName: slug验证linkhandler的语言适配
确认linkhandler配置中正确关联新闻的语言字段,确保选择目标新闻时,系统能识别对应语言的路径段,而非混合默认语言路径。可在配置中添加语言字段指定:$GLOBALS['TYPO3_CONF_VARS']['FE']['linkHandler']['news'] = [ 'handler' => \GeorgRinger\News\LinkHandler\NewsLinkHandler::class, 'label' => 'LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:linkHandler.news', 'configuration' => [ 'table' => 'tx_news_domain_model_news', 'storagePid' => '123', // 替换为你的新闻存储PID 'languageField' => 'sys_language_uid' ], 'icon' => 'EXT:news/Resources/Public/Icons/news_domain_model_news.svg' ];清除路由缓存
修改routeEnhancers或linkhandler配置后,务必清除TYPO3全部缓存,避免旧路由规则残留导致URL生成异常。检查新闻条目的路径段(slug)
确认目标语言的新闻条目有独立且正确的path_segment值,避免复用默认语言的slug。可在新闻编辑页面的SEO标签下检查并修正不同语言的slug内容。升级新闻扩展版本
考虑将News扩展升级到适配TYPO3 12.4的最新稳定版本,旧版本可能存在与TYPO3 12.4路由系统的兼容性问题,新版本通常会修复多语言路由相关bug。
内容的提问来源于stack exchange,提问作者crtdwthlve
相关产品推荐
相关产品推荐

