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

如何根据域名自动切换Typo3 10多语言站点的语言版本

实现TYPO3 10多域名自动对应多语言版本的方案

嘿,这个需求在TYPO3 10里完全可以轻松实现,而且是官方推荐的多域名绑定多语言的标准流程,我给你拆解成几个实操步骤,跟着来就行:

第一步:在站点管理中添加并绑定域名

  1. 登录TYPO3后台,进入Site Manager(站点管理),找到你正在使用的单页面树站点。
  2. 切换到Domains标签页,点击「Add domain」按钮:
    • 第一个域名填foobar.com,在「Default language」下拉框中选择你的英文语言(通常是「English」或语言ID 0)。
    • 第二个域名填foobar.fr,同样在「Default language」中选择法语(语言ID 1)。
  3. 保存站点配置。

第二步:配置语言的自动重定向与Base路径

这一步可以通过后台界面或直接编辑站点配置YAML文件来完成,两种方式都可行:

方式一:后台界面配置

  1. 在Site Manager的站点编辑界面,切换到Languages标签页。
  2. 编辑英文语言项:
    • 将「Base URL」设置为https://foobar.com/(如果希望英文站点直接在域名根目录,不需要/en/子路径),或者保留/en/并结合域名绑定。
    • 确保「Enabled」勾选为开启状态。
  3. 编辑法语语言项:
    • 将「Base URL」设置为https://foobar.fr/,同样勾选「Enabled」。
  4. 切换到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é

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 02:47:33