TYPO3 12版本如何为预览与后端表单配置不同基础URL?
TYPO3 12 多站点预览与后端表单Base Variant配置方案
问题背景
在多站点部署环境中,前端站点使用独立域名(如https://frontend-website-1.example.org/),后端通过共享域名(如https://typo3.example.com/typo3/)管理。需解决两个核心问题:
- 后端预览未上线页面/工作区变更时,避免跳转到无Cookie的前端域名导致404
- 后端表单(如页面属性的Web Address)需显示真实前端域名,而非共享域名的子路径
解决方案:双Base Variant配置
TYPO3 12中预览请求的applicationType被标记为backend,因此需针对预览场景和后端表单显示场景分别配置Base Variant。
站点配置代码
在对应站点的config/sites/<site-identifier>/config.yaml中添加以下配置:
base: 'https://frontend-website-1.example.org/' baseVariants: # 处理后端预览请求:跳转至共享域名的子路径 - base: 'https://typo3.example.com/frontend-website-1/' condition: 'applicationType == "backend" and (applicationContext == "Development" or like(host, "typo3.*"))' # 后端表单显示:使用真实前端域名 - base: 'https://frontend-website-1.example.org/' condition: 'applicationType == "backend"'
配置逻辑说明
- 预览场景匹配:第一个变体专门针对后端发起的预览请求,通过
applicationType == "backend"匹配,结合开发环境或共享域名条件,将预览URL指向https://typo3.example.com/frontend-website-1/,规避Cookie隔离导致的404问题。 - 后端表单显示:第二个变体仅在后端界面渲染时生效,强制使用真实前端域名,确保页面属性中的Web Address显示正确的用户访问地址。
关键注意事项
- 变体的顺序很重要:预览变体需放在表单显示变体之前,因为条件更具体的变体优先匹配。
- 若需对所有站点统一配置,可通过站点配置继承或全局配置调整,但建议按站点单独配置以保证灵活性。
内容的提问来源于stack exchange,提问作者Matt Raines
相关产品推荐
相关产品推荐

