You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 9.5.20升级后Typolink始终跳转默认语言求助

解决TYPO3 9.5.20升级后Typolink强制跳默认语言的问题

结合你描述的现象(升级后所有Typolink不管当前语言都跳德语,仅博客扩展和404页面正常)和提供的配置,我整理了几个核心排查和解决方向:

1. 修复TypoScript里的defaultGetVars配置(最可能的根因)

看你的setup.typoscript,全局配置里设置了defaultGetVars { L = 0 },但在各个语言的条件块里没有覆盖这个值!这会导致即使当前sys_language_uid切换到1/2/3,Typolink生成时还是会默认带上L=0参数,直接跳转到默认语言。

你需要在每个语言的条件块里添加对应的defaultGetVars设置:

[globalVar = GP:L = 1]
config {
  sys_language_uid = 1
  language = en
  locale_all = en_GB.UTF-8
  htmlTag_setParams = lang="en" dir="ltr" class="no-js"
  defaultGetVars {
    L = 1  # 新增这行,匹配当前语言ID
  }
}
[global]

[globalVar = GP:L = 2]
config {
  sys_language_uid = 2
  language = fr
  locale_all = fr_FR.UTF-8
  htmlTag_setParams = lang="fr-CH" dir="ltr" class="no-js"
  defaultGetVars {
    L = 2  # 新增这行,匹配当前语言ID
  }
}
[global]

[globalVar = GP:L = 3]
config {
  sys_language_uid = 3
  language = it
  locale_all = it_IT.UTF-8
  htmlTag_setParams = lang="it-ch" dir="ltr" class="no-js"
  defaultGetVars {
    L = 3  # 新增这行,匹配当前语言ID
  }
}
[global]

2. 协调站点配置与TypoScript的语言 fallback 设置

你的config.yaml里,英语(languageId=1)的fallbacks设置为'1,0,2,3',这里包含了自身,会导致不必要的循环fallback,建议调整为:

fallbacks: '0'  # 仅fallback到默认德语,避免循环

同时,TypoScript里的sys_language_mode = content_fallback和站点配置的fallbackType: strict可能存在冲突,尝试把TypoScript里的sys_language_mode改成strict,和站点配置保持一致:

config {
 // Language Settings
 sys_language_overlay = 0
 sys_language_mode = strict  # 修改这里
 language = de
 ...
}

3. 彻底清理所有缓存

TYPO3升级后缓存残留是常见问题,尤其是配置缓存和页面缓存。一定要通过后端的Flush TYPO3 Cache(选择全部缓存,不止页面缓存),或者直接删除var/cache目录下的所有文件,确保新的配置完全生效。

4. 验证当前语言上下文是否正确触发

在前端模板的某个测试位置添加调试输出,确认当前的sys_language_uid是否和当前语言环境匹配:

当前语言ID: {TSFE:sys_language_uid}

如果输出的ID和当前语言不对应(比如切到法语但显示0),那说明你的[globalVar = GP:L = X]条件没有正确触发,可能是URL里的L参数传递有问题,或者服务器有URL重写规则干扰了参数。

5. 检查自定义链接生成逻辑

你提到只有博客扩展的链接正常,说明核心的Typolink解析可能正常,问题出在其他内容的链接生成上:

  • 检查是否有自定义扩展或模板里用了硬编码的L=0参数;
  • 检查是否用了旧的typolink TypoScript函数而不是Fluid的<f:link.page>标签,旧函数在9.x里可能需要调整参数;
  • 确认数据库里的t3://page链接是否被正确解析,尝试手动在Fluid里用<f:link.page pageUid="686">测试链接</f:link.page>,看是否生成对应语言的URL。

内容的提问来源于stack exchange,提问作者lagiacrux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:17:49