如何根据域名自动切换Typo3 10多语言站点的语言版本
实现TYPO3 10多域名自动对应多语言版本的方案
嘿,这个需求在TYPO3 10里完全可以轻松实现,而且是官方推荐的多域名绑定多语言的标准流程,我给你拆解成几个实操步骤,跟着来就行:
第一步:在站点管理中添加并绑定域名
- 登录TYPO3后台,进入Site Manager(站点管理),找到你正在使用的单页面树站点。
- 切换到Domains标签页,点击「Add domain」按钮:
- 第一个域名填
foobar.com,在「Default language」下拉框中选择你的英文语言(通常是「English」或语言ID 0)。 - 第二个域名填
foobar.fr,同样在「Default language」中选择法语(语言ID 1)。
- 第一个域名填
- 保存站点配置。
第二步:配置语言的自动重定向与Base路径
这一步可以通过后台界面或直接编辑站点配置YAML文件来完成,两种方式都可行:
方式一:后台界面配置
- 在Site Manager的站点编辑界面,切换到Languages标签页。
- 编辑英文语言项:
- 将「Base URL」设置为
https://foobar.com/(如果希望英文站点直接在域名根目录,不需要/en/子路径),或者保留/en/并结合域名绑定。 - 确保「Enabled」勾选为开启状态。
- 将「Base URL」设置为
- 编辑法语语言项:
- 将「Base URL」设置为
https://foobar.fr/,同样勾选「Enabled」。
- 将「Base URL」设置为
- 切换到Settings标签页,找到「Language」部分,开启「Auto redirect」选项——这个选项会让TYPO3自动根据用户访问的域名跳转到对应语言版本,避免用户看到错误语言的内容。
方式二:直接编辑YAML配置文件
如果你习惯手动编辑配置,找到站点配置文件config/sites/[你的站点标识符]/config.yaml,替换成类似下面的内容(根据你的实际语言设置调整):
base: / languages: - title: English enabled: true base: 'https://foobar.com/' typo3Language: default locale: en_US.UTF-8 iso-639-1: en hreflang: en-US flag: us languageId: 0 - title: French enabled: true base: 'https://foobar.fr/' typo3Language: fr locale: fr_FR.UTF-8 iso-639-1: fr hreflang: fr-FR flag: fr languageId: 1 settings: language: autoRedirect: true
第三步:确保页面树的多语言内容完整
因为你用的是单页面树结构,记得给每个页面创建对应的法语翻译版本:
- 在页面树中选中需要翻译的页面,点击顶部的「Translate」按钮,选择法语语言,创建翻译页面。
- 确保翻译页面的内容正确关联,并且继承/设置了正确的模板和内容元素。
第四步:测试验证
完成配置后,分别访问foobar.com和foobar.fr,验证是否自动跳转到对应语言的站点:
- 访问
foobar.com应该直接进入英文版本的首页。 - 访问
foobar.fr应该直接进入法语版本的首页。 - 如果用户误访问
foobar.com/fr/,TYPO3会自动重定向到foobar.fr,反之亦然,这就是autoRedirect的作用。
内容的提问来源于stack exchange,提问作者Jean-Baptiste Joulé
相关产品推荐
相关产品推荐

